如果大家碰到了這個問題,相信剛開始大家都是很委屈的吧,心里想:我什么都沒干啊,就寫了個setContentView就要背鍋了?如果已經遇到了,不要方,這里給大家提供幾個解決方案,我們APP在啟動的時候會出現1~2秒的白屏或者黑屏,這個所謂的白屏或黑屏其實與我們設置的Theme有關,如果是Light就是白色,如果是Black則可能出現黑屏,那么為什么會有這種情況出現呢?接下來給大家分析一波。
jdfw.gif
App啟動時白屏或黑屏的原因
當你打開一個App時其實就是打開了一個activity,如果這個Activity所屬的應用還沒有在運行,那么系統會為這個Activity所屬的應用創建一個進程,創建進程是需要時間的,從而導致了白屏或黑屏的出現。
白屏或黑屏的解決
解決方案其實很多,接下來給大家介紹幾種
第一種解決方案
打開Manifest文件,找到啟動的Activity,找到對應的主題,進入style.xml文件,設置android:windowBackground屬性為你啟動頁的圖片即可,如果想體驗更好,也可以加入windowNoTitle屬性為true隱藏ActionBar,再加入android:windowFullscreen屬性為true全屏顯示,從而達到秒啟動的效果
<style name="SplashTheme" parent="AppBaseTheme">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowFullscreen">true</item>
<item name="windowNoTitle">true</item>
</style>
圖片被拉伸的有點厲害,不過白屏看不到了不是么
第二種解決方案
第一種方案是加入一張圖片從而造成一種快速啟動的錯覺,不過呢,可能會有一種小問題,那就是圖片會移動一下,強迫癥表示忍受不了,上第二種方案,直接給你的activity設置android:windowBackground屬性為透明色,這樣就可以避免圖片拉伸的問題,小二,上效果。
<style name="SplashTheme" parent="AppTheme">
<!-- 這里的trans自己寫一個#00000000即可-->
<item name="android:windowBackground">@color/trans</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
這樣是可以達到秒啟動的
這樣呢有一個小小的缺點,就是啟動App的時候,由于界面是透明的,所以可能會導致用戶以為自己沒有點到App,這兩種方式大家根據自己的需求來。