Я делаю игру для Android и столкнулся с проблемой при работе над следующим обновлением. Игра настроена на работу с API 19 и выше. Я использую класс ObjectAnimator для анимации маленьких прыгающих стрелок, указывающих на кнопки в учебнике. Ничего фантастического.
Желтая стрелка — снимок экрана 1
Код:
//Animate minestone clicker button arrow
b1_animator = ObjectAnimator.ofFloat(button_minestone_pointer,"translationX",0,-100);
b1_animator.setDuration(500);
b1_animator.setRepeatMode(ValueAnimator.REVERSE);
b1_animator.setRepeatCount(Animation.INFINITE);
b1_animator.start();
Проблема в том, что анимация плавная на ВСЕХ виртуальных устройствах, предоставляемых Android Studio (API 19 - API 27), и на всех новых API, но на моем телефоне (Sharp SH-01G) под управлением Android 4.4 автоматическая прокрутка или эти стрелки просто прыгать из одного положения в другое, создавая размытое изображение. Пока не было возможности проверить это на другом устройстве до API21. Такое ощущение, что он не соблюдает ".setDuration();" кусочек. Свитки прыгают сразу в нужную позицию, но совсем не плавно.
Это код скроллера:
ObjectAnimator.ofInt(scroller_clickers, "scrollX", 800).setDuration(777).start();
Так вот вопрос, чем вызвано такое поведение? Вместо этого я также пытался использовать view.animate(), но это тоже не помогло. Подсказка в том, что когда я пытался найти "getAnimatedFraction();" значение, эмуляторы показывали разные дроби - плавный переход между 0,0 и 1. Мой телефон всегда показывал 0,0 или 1,0 в каком-то случайном порядке (вставил это в TextView и обновил с помощью Runnable). Назначение «AccelerateDecelerateInterpolator()» также не сработало. Я не хочу показывать публике неисправную игру :(
Любые идеи?
ObjectAnimator
ошибки регистрации в logcat, когда ваше устройство kitkat подключено и на этом экране? Очевидно, чтоObjectAnimator.ofInt
находится междуint
(целыми числами), а неofFloat
— должен ли код бытьObjectAnimator.ofFloat(scroller_clickers, "scrollX", 800).setDuration(777).start();
? - person Mark Keen   schedule 16.04.2018