如果大家碰到了這個(gè)問(wèn)題扣泊,相信剛開(kāi)始大家都是很委屈的吧,心里想:我什么都沒(méi)干啊嘶摊,就寫了個(gè)setContentView就要背鍋了延蟹?如果已經(jīng)遇到了,不要方叶堆,這里給大家提供幾個(gè)解決方案阱飘,我們APP在啟動(dòng)的時(shí)候會(huì)出現(xiàn)1~2秒的白屏或者黑屏,這個(gè)所謂的白屏或黑屏其實(shí)與我們?cè)O(shè)置的Theme有關(guān)虱颗,如果是Light就是白色沥匈,如果是Black則可能出現(xiàn)黑屏,那么為什么會(huì)有這種情況出現(xiàn)呢忘渔?接下來(lái)給大家分析一波高帖。
App啟動(dòng)時(shí)白屏或黑屏的原因
當(dāng)你打開(kāi)一個(gè)App時(shí)其實(shí)就是打開(kāi)了一個(gè)activity,如果這個(gè)Activity所屬的應(yīng)用還沒(méi)有在運(yùn)行畦粮,那么系統(tǒng)會(huì)為這個(gè)Activity所屬的應(yīng)用創(chuàng)建一個(gè)進(jìn)程散址,創(chuàng)建進(jìn)程是需要時(shí)間的乖阵,從而導(dǎo)致了白屏或黑屏的出現(xiàn)。
白屏或黑屏的解決
解決方案其實(shí)很多预麸,接下來(lái)給大家介紹幾種
第一種解決方案
打開(kāi)Manifest文件瞪浸,找到啟動(dòng)的Activity,找到對(duì)應(yīng)的主題吏祸,進(jìn)入style.xml文件对蒲,設(shè)置android:windowBackground屬性為你啟動(dòng)頁(yè)的圖片即可,如果想體驗(yàn)更好贡翘,也可以加入windowNoTitle屬性為true隱藏ActionBar蹈矮,再加入android:windowFullscreen屬性為true全屏顯示,從而達(dá)到秒啟動(dòng)的效果
<style name="SplashTheme" parent="AppBaseTheme">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowFullscreen">true</item>
<item name="windowNoTitle">true</item>
</style>
第二種解決方案
第一種方案是加入一張圖片從而造成一種快速啟動(dòng)的錯(cuò)覺(jué)含滴,不過(guò)呢,可能會(huì)有一種小問(wèn)題丐巫,那就是圖片會(huì)移動(dòng)一下谈况,強(qiáng)迫癥表示忍受不了,上第二種方案递胧,直接給你的activity設(shè)置android:windowBackground屬性為透明色碑韵,這樣就可以避免圖片拉伸的問(wèn)題,小二缎脾,上效果祝闻。
<style name="SplashTheme" parent="AppTheme">
<!-- 這里的trans自己寫一個(gè)#00000000即可-->
<item name="android:windowBackground">@color/trans</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
這樣呢有一個(gè)小小的缺點(diǎn),就是啟動(dòng)App的時(shí)候遗菠,由于界面是透明的联喘,所以可能會(huì)導(dǎo)致用戶以為自己沒(méi)有點(diǎn)到App,這兩種方式大家根據(jù)自己的需求來(lái)辙纬。