2

消える前に 2 ~ 3 秒間表示されるスプラッシュ スクリーンがあります。次のアクティビティがロードされたときにフェード イン エフェクトを追加したいと考えています。Facebook ハッカーの例で例を見て、それを使用しています。これは、finish(); を使用します。そのアクティビティを終了するには、DashboardActivity からそうします。誰かがクリックして戻った場合、SplashActivity に戻りません。ただし、これを使用しても、API デモの例に示されているように、フェード イン エフェクトは作成されません。

public class SplashActivity extends Activity {
    private long splashDelay = 3000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        // Remove title bar
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);

        // Remove notification bar
        /*
         * this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
         * WindowManager.LayoutParams.FLAG_FULLSCREEN);
         */

        setContentView(R.layout.activity_splash);

        TimerTask task = new TimerTask() {

            @Override
            public void run() {
                finish();
                startActivity(new Intent().setClass(SplashActivity.this,
                        MainActivity.class));
                overridePendingTransition(R.anim.fade, R.anim.hold);
            }
        };

        Timer timer = new Timer();
        timer.schedule(task, splashDelay);

    }

}
4

1 に答える 1

6

これにはハンドラーを使用します。

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        startActivity(new Intent(SplashActivity.this,
                MainActivity.class));
        overridePendingTransition(R.anim.fade, R.anim.hold);
        finish();
    }
}, splashDelay);
于 2012-12-22T21:11:21.613 に答える