我想动画按钮(即;旋转,平移)然后更改按钮的文本。不幸的是,它总是先改变按钮的文本,然后再做动画。
我如何实现目标?
请帮助我
我的代码是这样的;
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));
答案 0 :(得分:0)
您的代码启动动画但未阻止:动画启动后,程序继续运行。
您可以尝试获取处理程序并在适当的时间发布更改文本事件:
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
答案 1 :(得分:0)
更好的解决方案是向动画添加AnimationListener,或者如果您在JB上,则使用视图属性动画师和withEndAction()
方法。如果可能,您应该避免使用旧的动画框架。它实际上并没有改变属性,只是通过转换绘制视图。
set.setAnimationListener(new AnimationListener() {
public void onAnimationEnd() {
// ...
}
public void onAnimationStart() {
}
public void onAnimationRepeat() {
}
}
但如果您可以使用它们,我建议使用视图属性动画。与他们合作要好得多。