我想动画按钮,然后更改它的值,但无法在Android中

时间:2012-09-17 13:10:21

标签: android animation

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

我如何实现目标?

请帮助我

我的代码是这样的;

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));

2 个答案:

答案 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() {
    }
}

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