结束动画后如何开始新的活动?

时间:2012-10-27 20:47:47

标签: java android animation

我对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();        
        }

        });

    }

}

1 个答案:

答案 0 :(得分:2)

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

请注意,以您的方式启动动画有点危险。 docs说:

  

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