Перевод анимации в код Android - PullRequest
0 голосов
/ 23 июня 2010

Мне удалось заставить анимацию работать на эмуляторе - однако моя проблема в том, что она анимируется на секунду, а затем возвращается к исходному положению сразу после завершения анимации. Как я могу остановить это для того, чтобы это произошло.

Вот как я оживляю свои объекты:

    private void doAnimations() {

  logo.setVisibility(View.INVISIBLE);
  logo.setBackgroundDrawable(null);
  logo.setMaxHeight((logo.getHeight()/2));
  Animation animation = new TranslateAnimation(0, 0, 0, -200);
  usernameEdit.startAnimation(animation);
 }

Любая помощь приветствуется. Спасибо.

Ответы [ 2 ]

1 голос
/ 23 июня 2010

Хотя animation.setFillAfter(true); - хорошее начало, но по своему опыту я увидел, что хотя с помощью этого метода видимый вид смещается в место, где анимация останавливается, но все же элемент управления остается там, где он был раньше ...

Чтобы проиллюстрировать это, допустим, что у вас есть кнопка «btn1» в позиции A, анимация останавливается, скажем, в позиции B, теперь, когда вы установили animation.setFillAfter(true);, после остановки анимации вид будет виден в позиции B но щелкнув по нему не получится. Хотя, если вы щелкнете в позиции A (где ничего не видно), будет вызван метод onClickListener btn1 ...

Следовательно, как я уже говорил ранее, представление отображается (в положении B), но не элемент управления (который остается в положении A) ... Поэтому лучше использовать метод Марка (CommonsWare) для установки слушателя анимации и создания желаемые изменения, когда анимация останавливается ...

Надеюсь, это поможет!

1 голос
/ 23 июня 2010

Как я могу остановить это, чтобы это произошло?

Зарегистрируйте слушателя на анимации.Затем, когда слушателю сообщают, что анимация завершена, сделайте что-нибудь с фактическим макетом, чтобы сделать ваше изменение постоянным.

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