我們在開發android應用程序時,往往會添加啓動頁面;這時會遇到一個問題,就是啓動頁面會先顯示一下白色背景或者黑色背景(根據你application使用的主題不同導致白色背景或者黑色背景),然後纔會顯示我們需要的效果。
這是因爲:activity在執行setContentView()方法後纔會顯示佈局,所以在setContentView()方法前面不要放耗時的操作。如果activity是繼承下來的,那麼也要注意一下父activity的onCreate()方法不要放耗時的操作。
還有一種情況就是,題主在onCreate()方法來調用了requestWindowFeature()方法來設置全屏,這樣也會導致先顯示白屏(黑屏)再跳轉。
解決方案:在res/values下添加一個主題如下:
<style name="Theme.beginBackground" parent="@android:style/Theme.Translucent.NoTitleBar"> <item name="android:windowBackground">@null</item> </style>然後在啓動的anctivity使用該主題:
<activity android:name=".ui.WelcomeActivity" android:screenOrientation="portrait" android:theme="@style/Theme.beginBackground"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>