animation.start () или animation.startNow () не запускает анимацию сразу - PullRequest
6 голосов
/ 31 августа 2010

У меня странная проблема - время от времени анимация, которая должна затухать, в моем контроле (ImageButton) не срабатывает сразу. Я использую анимацию затухания, чтобы скрыть ее, а затем в myListener на ее конце (onAnimationEnd) я помещаю новый ресурс в качестве изображения на кнопку.

Где-то в коде моего приложения:

Animation a = AnimationUtils.loadAnimation(this,R.anim.fadeout); 
a.setAnimationListener(new myListener(location));
buttons[location].setAnimation(a);
a.startNow(); // regardless if its start() or startnNow() 
              // it will work in most of the cases but not 100% reliable
              // I actually can see in debug Log when its late, happens after few more clicks

Затем в myListener.onAnimationEnd (Анимация a):

buttons[location].setImageResource(R.drawable.standard_button);

Кажется, есть правило, что каждая 4-я или 5-я анимация не запускается ...

Спасибо за помощь!

Ответы [ 2 ]

11 голосов
/ 31 августа 2010

добавление

buttons[location].invalidate(); 

после

a.startNow();

исправил мою проблему.

3 голосов
/ 25 сентября 2012

Вы также можете использовать

buttons[location].startAnimation(a);
...