2

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

        });

    }

}
4

1 回答 1

2

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

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

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

于 2012-10-27T21:46:26.383 回答