2015-05-21 3 views
3

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

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

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

EDIT:

Это seemsto быть основан на устройстве - галактика s4 Samsung, кажется, есть проблема с интерполированием вида правильно. Это та же проблема, что и this question.

+0

похоже, что ваш поток пользовательского интерфейса является способом toooooo занят – pskink

+0

Это не тот случай. У меня есть другие анимации, которые анимируются очень гладко, и мой пользовательский интерфейс по-прежнему реагирует повсюду. –

+0

ok, тогда попробуйте differtent имя свойства (например, «foo»), добавьте метод setFoo (float) в свою активность и внутри setFoo вызовите Log.d с currentTimeMillis – pskink

ответ

5

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

+0

hahahaha отлаживает это в течение нескольких часов, не осознавая, что отключил анимацию в настройках !!! – rupps