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

私の知る限りAnimationDrawable、反復がいつ終了したかを判断するためのコールバック メカニズムはありません。できることは、フレーム数と各フレームの遅延を照会することです。それを合計して、その期間で遅延投稿を作成します。そのコールバックで、2 番目のアクティビティを開始できます。

また、アニメーションをこのように開始するのは少し危険であることに注意してください。ドキュメントは言う:

AnimationDrawable で呼び出された start() メソッドは、Activity の onCreate() メソッド中に呼び出すことができないことに注意することが重要です。これは、AnimationDrawable がまだウィンドウに完全にアタッチされていないためです。操作を必要とせずにアニメーションをすぐに再生したい場合は、Activity の onWindowFocusChanged() メソッドから呼び出すことができます。このメソッドは、Android がウィンドウにフォーカスを移したときに呼び出されます。

于 2012-10-27T21:46:26.383 に答える