Проблемы с Android View Animation: запускать анимацию после события - PullRequest
0 голосов
/ 19 мая 2011

У меня есть несколько ImageViews каждая с бесконечно пульсирующим ScaleAnimation и тремя попытками, которые не имеют смысла для меня.

  • Если я установил анимацию сразу после надувания анимации, анимация работает отлично. Это также говорит мне, что моя вспомогательная функция для создания анимации (используется во всех трех случаях) работает нормально.
  • Если я установлю анимацию немедленно, но со временем запуска Long.MAX и позже вызову icon.getAnimation().start(), эта анимация запустится, но скорость будет выше, чем должна быть, и масштаб будет не тем, что я установил. Независимо от того, на что я установил масштаб анимации и параметры длительности, он всегда выглядит одинаково, в отличие от предыдущего случая.
  • Если я позвоню icon.startAnimation(..) с новым Animation объектом, я не получу анимацию. Копаясь в Android-источник, startAnimation(..) звонит invalidate(), в отличие от setAnimation(..). Если я звоню icon.getAnimation().start(), а затем icon.invalidate(), я получаю такое же (отсутствие) поведения. Это намекает мне на то, что инвалид как-то нарушает анимацию.

Итак, учитывая все вышесказанное, является ли это симптомом ошибки, которую я мог совершить? Есть что-то, чего я не описал, что мне следует делать?

Наконец, я попробовал это с указанием шкалы поворота как относительно, так и неправильно, думая, что может быть ошибка в порядке событий относительно View.invalidate() и Animation.reset().

1 Ответ

0 голосов
/ 09 июня 2013

У многих людей проблемы с анимацией. Работа с анимацией над чем-либо до Honeycomb - это настоящая боль.

Я рекомендую загрузить библиотеку NineOldAndroids и использовать ее в качестве импорта, чтобы вы могли использовать Honeycomb API анимации во всех версиях Android (даже до 1.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...