Как узнать частоту обновления экрана
Создал класс SurfaceView, который вывожу на экран.
В своём потоке SurfaceView рисует background и поверх картинку которая движется, её X-координата в каждом цикле run() увеличивается на 1. Задержку времени я не добавлял.
В результате картинка медленно движется слева-направо.
Подскажите, как мне узнать частоту с которой выполняется цикл в методе run() в параллельном потоке? Это какое-то стандартное значение?
Ответы (1 шт):
Номинальную частоту обновления экрана можно узнать, вызвав android.view.Display.Display.getRefreshRate. Более реалистичные данные можно получить, зарегистрировав функцию обратного вызова посредством AChoreographer_registerRefreshRateCallback. Оба метода на удивление кривые, так как первый почему-то возвращает float, а второй - наносекунды. А с какой частатой там у вас вызывается цикл run - это надо мерять в самом этом цикле. При этом по-хорошему инкремент движения картинки не должен быть фиксирован и привязан к частоте вызова.