animation.start()或animation.startNow()不会立即启动动画

时间:2010-08-30 20:36:42

标签: android animation android-animation

我有一个奇怪的问题 - 应该淡出我的控件(ImageButton)的动画不会立即启动。我正在使用fadeout动画来隐藏它,然后在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 个答案:

答案 0 :(得分:11)

添加

buttons[location].invalidate(); 

之后

a.startNow();

解决了我的问题。

答案 1 :(得分:3)

您也可以使用

buttons[location].startAnimation(a);