如何防止2个按钮同时动画?

时间:2015-06-15 12:34:03

标签: java android

我需要你的帮助!

嗯......我正在使用setAnimationListener(new AnimationListener{...});设置一系列按钮的动画,这些按钮只会闪烁一次。

例如,如果列表中的button1,button2和button3闪烁,那么我需要这样的内容:

button1闪烁 ---> 按钮2闪烁 ---> 按钮3闪烁

这样可以正常工作,但是如果我尝试在滚动中为同一个按钮设置两次动画,它就会与第三个按钮同时闪烁。如果我有button1,button1和button2,就会出现这种情况。

button1闪烁 ---> 按钮1闪烁,按钮2闪烁

什么时候应该去:

button1闪烁 ---> 按钮1闪烁 ---> 按钮2闪烁

代码:

public void animate(ArrayList<Animation> list){

    final ArrayList<Animation> listAux = new ArrayList<Animation>();
    listAux.addAll(list);

    if(listAux.size() == 1){
        animationMetod(listAux.get(0));
        listAux.remove(0);
        animate(listAux);
    }
    else if((listAux.size() >= 2)){

        listAux.get(0).setAnimationListener(new AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {

                listAux.remove(0);

                animationMetod(listAux.get(0));
                animate(listAux);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });

    } else {
        listAux.clear();
    }
}

public void animationMetod(Animation buttonBlink) {
    if(buttonBlink == button1Blink){
        button1.startAnimation(button1Blink);

    }else if(buttonBlink == button2Blink) {
        button2.startAnimation(button2Blink);

    }else if(buttonBlink == button3Blink) {
        button3.startAnimation(button3Blink);
    }
}

这是blink的xml:

<?xml version="1.0" encoding="utf-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:duration="600"
        android:repeatMode="reverse"
        android:repeatCount="1" />
</set>

0 个答案:

没有答案