我想动画按钮,然后改变它的值,但不能在android



我想设置按钮的动画(即旋转、平移),然后更改按钮的文本。不幸的是,它总是先更改按钮的文本,然后再做动画。

我该如何实现我的目标?

请帮我

我的代码是这样的;

AnimationSet set = new AnimationSet(true);
Animation anim1 = new RotateAnimation(0, 360, 500, 750);
anim1.setDuration(3000);
anim1.setFillAfter(true);
set.addAnimation(anim1);
Animation anim2 = new RotateAnimation(0, 360, 1024, 824);
anim2.setDuration(3000);
anim2.setFillAfter(true);
set.addAnimation(anim2);
anim2.setStartOffset(3000);
first.clearAnimation();
set.setFillAfter(true);
first.startAnimation(set);      
numbers[0]=min + (int)(Math.random() * ((max - min) + 1));

您的代码启动动画,但没有阻塞:一旦启动动画,程序就会继续。

您可以尝试获取一个处理程序,并在正确的时间发布更改文本事件:

Handler mHandler=new Handler();
Runnable lRunnable =new Runnable()
{
public void run() 
{
//Your change text code                       
}
};
mHandler.postDelayed(lRunnable , 3000); // Or any other duration so you have the right effect

更好的解决方案是向动画中添加一个AnimationListener,或者如果您在JB上,则使用视图属性animators和withEndAction()方法。如果可能的话,应该避免使用旧的动画框架。它实际上并没有改变属性,只是通过转换绘制视图。

set.setAnimationListener(new AnimationListener() {
public void onAnimationEnd() {
// ...
}
public void onAnimationStart() {
}
public void onAnimationRepeat() {
}
}

但如果可以使用视图属性动画,我建议您使用它们。和他们一起工作要好得多。

相关内容

最新更新