Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动画片不断地运行_Android_Animation - Fatal编程技术网

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的持续时间。 然后将整个动画集应用于视图,它将一个接一个地播放动画,并在第三个动画后结束