有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何防止两个按钮同时设置动画?

我需要你的帮助

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

例如,如果列表中有button1、button2和button3要闪烁,那么我想要如下内容:

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

这很好,但是如果我尝试在一个滚动中为同一个按钮设置两次动画,它只会在第三个按钮同时闪烁。如果我有按钮1、按钮1和按钮2,就会发生类似的情况

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

应在何时进行:

按钮1闪烁-->按钮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:安卓="http://schemas.安卓.com/apk/res/安卓">
    <alpha 安卓:fromAlpha="1.0"
        安卓:toAlpha="0.0"
        安卓:interpolator="@安卓:anim/accelerate_interpolator"
        安卓:duration="600"
        安卓:repeatMode="reverse"
        安卓:repeatCount="1" />
</set>

共 (0) 个答案