Android 动画片不断地运行
我想运行一个动画,然后动画一个完成,第二个动画开始。我写这段代码,但当我运行这个程序,动画不断运行!而且还没有完成。为什么?有什么问题吗Android 动画片不断地运行,android,animation,Android,Animation,我想运行一个动画,然后动画一个完成,第二个动画开始。我写这段代码,但当我运行这个程序,动画不断运行!而且还没有完成。为什么?有什么问题吗 public class Splash extends Activity{ Animation animation1; Animation animation2; Animation animation3; ImageView image; ImageButton circleProduct; ImageButton circleIntroduce; Im
public class Splash extends Activity{
Animation animation1;
Animation animation2;
Animation animation3;
ImageView image;
ImageButton circleProduct;
ImageButton circleIntroduce;
ImageButton circleMore;
ImageButton circleContact;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
animation1=AnimationUtils.loadAnimation(this, R.anim.bounce);
circleProduct=(ImageButton)findViewById(R.id.btnCircleProduct);
circleIntroduce=(ImageButton)findViewById(R.id.btnCircleIntroduce);
circleMore=(ImageButton)findViewById(R.id.btnCircleMore);
circleContact=(ImageButton)findViewById(R.id.btnCircleContact);
image=(ImageView)findViewById(R.id.img);
image.startAnimation(animation1);
animation1.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
circleProduct.setVisibility(View.VISIBLE);
circleProduct.startAnimation(animation1);
circleContact.setVisibility(View.VISIBLE);
circleContact.startAnimation(animation1);
circleIntroduce.setVisibility(View.VISIBLE);
circleIntroduce.startAnimation(animation1);
circleMore.setVisibility(View.VISIBLE);
circleMore.startAnimation(animation1);
}
});
}
感谢您的帮助您正在使用
onAnimationEnd
方法再次运行相同的动画-
circleMore.startAnimation(animation1);
因此,每次
animation1
完成时,它都会再次启动,除非您使用不同的animationListener
启动不同的动画,因为您在侦听器中启动相同的动画,animation1
,因此您创建了一个循环
为必须在
onAnimationEnd
方法中启动的动画创建另一个动画实例。您的问题是,当a1结束时,您再次启动a1,而不是a2
我建议您在电子动画中形成一个动画集
,将a2的开始偏移设置为a1的持续时间,将a3的开始偏移设置为a1的持续时间+a2的持续时间。
然后将整个动画集应用于视图,它将一个接一个地播放动画,并在第三个动画后结束