我尝试做一些事情,比如当我点击一个按钮时,它会运行一个动画,然后在第一个动画完成后它会变成另一个不同的动画。我正在为动画使用动画列表。
我正在使用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();
}
}
答案 0 :(得分:0)
有些事情对你有用:
transformAnimation.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
transformToSlim.start();
}
});
transformToSlim.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
transformToSlimmest.start();
}
});
这会为您的动画添加侦听器,如果当前动画结束,则会触发下一个动画。
答案 1 :(得分:0)
使用此代码在第一个动画完成时开始第二个动画:
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();