对Android来说是一个很新的东西,我找不到关于如何在动画结束时开始新活动的话题。

这是我的代码:

public class Intro extends Activity {

    AnimationDrawable anim = new AnimationDrawable();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.intro);
        ImageView iv =(ImageView) findViewById(R.id.imageView1);
        iv.setBackgroundResource(R.anim.animation);
        anim = (AnimationDrawable) iv.getBackground();

        iv.post(new Runnable(){
            public void run(){
                anim.start();
        }

        });

    }

}

最佳答案

据我所知,没有回调机制来确定AnimationDrawable何时完成迭代。您可以查询帧数和每帧的延迟。总结一下,并在该持续时间内发布一个延迟的帖子。在该回调中,您可以开始第二个活动。

请注意,以动画方式开始动画有点危险。 docs说:


  重要的是要注意,不能在Activity的onCreate()方法期间调用在AnimationDrawable上调用的start()方法,因为AnimationDrawable尚未完全附加到窗口。如果您想立即播放动画而不需要交互,那么您可能想从Activity中的onWindowFocusChanged()方法中调用它,当Android将窗口聚焦时,该方法将被调用。

10-02 08:45