2016-05-21 25 views
1

我想爲我希望創建的應用程序創建啓動畫面。我的第一個解決方案是幾秒鐘顯示一個新的佈局,然後顯示一個新的佈局,像這樣:如何在onCreate完成之前顯示內容 - Android

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.logo) 
    android.os.SystemClock.sleep(5000); 
    setContentView(R.layout.activity_main); 
} 

但問題是,它會顯示一個白色的屏幕5秒鐘,然後進入我的主屏幕。我想我可以通過創建一個新的方法或類來解決這個問題,並從那裏改變佈局,但是使用一種方法什麼也沒做,創建一個類只是被證明比較困難,因爲我非常確定我必須使用AsyncTask。我覺得有一個我不知道的非常簡單的解決方案。 由於提前, 笨蛋先生

+0

不是正確的方式來實現你所處的位置爲... ...至少在搜索發佈前有這麼多的線程如此 –

+3

可能重複的[如何使閃屏?](http://stackoverflow.com/questions/5486789/how-do-i - 製作閃屏) –

回答

0

您需要創建閃屏的另一個活動

例子:

public class SplashScreen extends Activity { 

    // Splash screen timer 
    private static int SPLASH_TIME_OUT = 3000; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 

     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       // This method will be executed once the timer is over 
       // Start your app main activity 
       Intent i = new Intent(SplashScreen.this, MainActivity.class); 
       startActivity(i); 

       // close this activity 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); 
    } 

} 

Here是完整的例子

希望它可以幫助

+0

感謝您的快速回復!我試了一下,但是它在「New Handler()」中給了我一個錯誤。它說這是抽象的,不能實例化。 – MrSchmuck

相關問題