Почему у ObjectAnimator разная скорость на разных телефонах/устройствах?

Я делаю игру, в которой использую несколько ObjectAnimators. Но их скорость различается в зависимости от того, на каком устройстве запущена игра. И это утомительно, потому что это как бы ломает геймплей игры.

Например, между Sony Xperia Z3 и Huawei P8lite Huawei будет отображать анимацию намного быстрее, чем Sony. Что не имеет смысла, так как экран Huawei имеет меньшее разрешение. (сравнение спецификаций)

Так что я начинаю думать, что в этом есть что-то большее. Например, может быть FPS или ppi/dpi...? Я не знаю...

Я нашел эту тему: Скорость анимации на разных устройствах, но в ней нет четкого ответа.

Пример кода, используемого в моей игре:

ObjectAnimator anim = ObjectAnimator.ofFloat(this, View.X, this.getX()+120, this.getX()-120);
anim.setInterpolator(new LinearInterpolator());
anim.setDuration(600);
anim.start();

Почему анимации, созданные с помощью ObjectAnimator, имеют разную скорость при использовании на разных устройствах, но сохраняют одинаковое расстояние и продолжительность, если это не связано с разрешением? Как я могу это исправить?


person Calvin M.T.    schedule 06.10.2019    source источник