Android啟動白屏問題完美解決
阿新 • • 發佈:2018-12-10
在開發過程中我們經常會遇到點選啟動App的時候有短暫的白屏出現,怎麼避免這種情況呢?提供倆種解決思路
1、設定透明的介面來完成
在你的style裡面加這倆行程式碼
<item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item>
完整的示例如下
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <!-- 設定透明介面 --> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> </style>
這種方式有一個弊端,當你App做的很大的時候點選啟動時總感覺是啟動的很慢,其實不是這樣的,而是啟動的時候透明瞭,所以感覺是啟動的慢
2、把白屏換成一張過度的圖片
在你的style裡面加這倆行程式碼
<item name="android:windowBackground">@mipmap/ic_launcher</item> <item name="android:windowNoTitle">true</item>
完整的示例如下
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <!-- 過度圖片 --> <item name="android:windowBackground">@mipmap/ic_launcher</item> <item name="android:windowNoTitle">true</item> </style>
這種方式會使你的App一直有這個圖片背景在顯示,不是我們想要的結果,所以我們在Activity中重寫一個生命週期中介面載入完成後的回撥方法,將背景顏色改為白色
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); //修改背景為白色 getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE)); }
這種方式可以解決App啟動白屏的問題,但是啟動背景顯示的時間太短,不像一般App那樣歡迎頁顯示幾秒後跳轉,所以建議還是做一個歡迎頁比較好,能有效的避免白屏問題還能做廣告,但是如果公司產品大大不讓做歡迎頁那就沒辦法啦,只能採用這倆種方法來避免這個問題了