ObjectAnimator.setDuration игнорируется

Функция setDuration класса ObjectAnimator в Android полностью игнорируется. Какое бы значение я ему не передал, анимация всегда завершается мгновенно.

    ObjectAnimator.ofFloat(mView, "translationY", 0, 100)
            .setDuration(2000)
            .start();

Вышеприведенный код увеличивает значение Y mView на 100 (по сути, сдвигая его дальше вниз по экрану). Фактический перевод происходит правильно, однако он мгновенный. setDuration(2000) полностью игнорируется. Почему это?

ИЗМЕНИТЬ:

Похоже, это связано с устройством — у samsung galaxy s4, похоже, есть проблема с правильной интерполяцией изображений. Это та же проблема, что и этот вопрос.


person Mike Baxter    schedule 21.05.2015    source источник
comment
похоже, что ваш поток пользовательского интерфейса слишком занят   -  person pskink    schedule 21.05.2015
comment
Это не так. У меня есть другие анимации, которые анимируются очень плавно, и мой пользовательский интерфейс остается отзывчивым.   -  person Mike Baxter    schedule 21.05.2015
comment
хорошо, тогда попробуйте другое имя свойства (например, foo), добавьте метод setFoo (float) в свою активность и внутри setFoo вызовите Log.d с помощью currentTimeMillis   -  person pskink    schedule 21.05.2015


Ответы (1)


Это оказалось проблемой со шкалой продолжительности анимации по умолчанию в разделе Параметры разработчика. Я ответил на аналогичный вопрос здесь.

person Mike Baxter    schedule 29.05.2015
comment
хахахаха отлаживал это часами, не осознавая, что отключил анимацию в настройках!!! - person rupps; 03.11.2016