在android studio中自动更改动画

在android studio中自动更改动画,android,animation,Android,Animation,我试着做一些事情,比如当我单击一个按钮时,它将运行一个动画,然后在第一个动画完成后,它将更改为另一个不同的动画。我正在为动画使用动画列表 我正在使用if-else更改动画,但是如何在第一个条件下实现另一个动画 if(i == 0) { //if 1st time click the button, it will transform from fattest to fat... transformAnimation.start(); i++; } if(i == 1) {

我试着做一些事情,比如当我单击一个按钮时,它将运行一个动画,然后在第一个动画完成后,它将更改为另一个不同的动画。我正在为动画使用动画列表

我正在使用if-else更改动画,但是如何在第一个条件下实现另一个动画

if(i == 0)
{
    //if 1st time click the button, it will transform from fattest to fat...
    transformAnimation.start();
    i++;
}
if(i == 1)
{
    iv.setImageResource(R.drawable.transform_2);
    transformToSlim = (AnimationDrawable) iv.getDrawable();
    transformToSlim.start();
    i++;
}
else if(i == 2)
{
    iv.setImageResource(R.drawable.transform_3);
    transformToSlimmest = (AnimationDrawable) iv.getDrawable();
    transformToSlimmest.start();
}
}

这方面的一些东西应该适合你:

transformAnimation.setAnimationListener(新建Animation.AnimationListener()){
@凌驾
动画开始时的公共void(动画arg0){
}           
@凌驾
AnimationRepeat上的公共无效(动画arg0){
}           
@凌驾
onAnimationEnd上的公共无效(动画arg0){
transformToSlim.start();
}
});
transformToSlim.setAnimationListener(新的Animation.AnimationListener(){
@凌驾
动画开始时的公共void(动画arg0){
}           
@凌驾
AnimationRepeat上的公共无效(动画arg0){
}           
@凌驾
onAnimationEnd上的公共无效(动画arg0){
transformtoslimest.start();
}
});

这会将侦听器添加到动画中,如果当前动画结束,将触发下一个动画。

使用此代码在第一个动画结束时启动第二个动画:

Animation animation1 = ...;
animation1.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {}

    @Override
    public void onAnimationEnd(Animation animation) {

        Animation animation2 = ...;
        animation2.start();
    }

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

第一个动画完成后,应启动其他动画。