Как узнать частоту обновления экрана

Создал класс SurfaceView, который вывожу на экран.

В своём потоке SurfaceView рисует background и поверх картинку которая движется, её X-координата в каждом цикле run() увеличивается на 1. Задержку времени я не добавлял.

В результате картинка медленно движется слева-направо.

Подскажите, как мне узнать частоту с которой выполняется цикл в методе run() в параллельном потоке? Это какое-то стандартное значение?


Ответы (1 шт):

Автор решения: user7860670

Номинальную частоту обновления экрана можно узнать, вызвав android.view.Display.Display.getRefreshRate. Более реалистичные данные можно получить, зарегистрировав функцию обратного вызова посредством AChoreographer_registerRefreshRateCallback. Оба метода на удивление кривые, так как первый почему-то возвращает float, а второй - наносекунды. А с какой частатой там у вас вызывается цикл run - это надо мерять в самом этом цикле. При этом по-хорошему инкремент движения картинки не должен быть фиксирован и привязан к частоте вызова.

→ Ссылка