欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android啟動頁出現(xiàn)白屏、黑屏的解決方案

 更新時間:2017年12月18日 14:16:30   作者:工藤一號  
這篇文章主要給大家介紹了關(guān)于Android啟動頁出現(xiàn)白屏、黑屏的解決方案,這一個需求是每位Android開發(fā)者都需要的,最近發(fā)現(xiàn)了一個不錯的解決方法,所以分享給大家,文中給出了詳細(xì)的介紹,需要的朋友可以參考下。

歷史原因

當(dāng)系統(tǒng)啟動一個APP時,zygote進(jìn)程會首先創(chuàng)建一個新的進(jìn)程去運行這個APP,但是進(jìn)程的創(chuàng)建是需要時間的,在創(chuàng)建完成之前,界面是呈現(xiàn)假死狀態(tài)的,這就很尷尬了,因為用戶會以為沒有點到APP而再次點擊,這極大的降低用戶體驗,Android需要及時做出反饋去避免這段迷之尷尬。于是系統(tǒng)根據(jù)你的manifest文件設(shè)置的主題顏色的不同來展示一個白屏或者黑屏。而這個黑(白)屏正式的稱呼應(yīng)該是Preview Window,即預(yù)覽窗口。

好了,現(xiàn)在我們明白了,Preview Window其實是為了提高用戶體驗而有意設(shè)定的。因此,其實如果不是強(qiáng)迫癥,它可能并不是一個問題。

但是我猜大部分小伙伴應(yīng)該是和我一樣的強(qiáng)迫癥患者:這么丑的黑屏怎么能出現(xiàn)在我的APP上呢???!??!

所以,下面我們就來聊聊這個問題的解決方案。

引言

目前app的設(shè)計思路,都會有一個啟動頁,來進(jìn)行一些數(shù)據(jù)的初始化等一些比較耗時的操作,這就會造成啟動頁短暫的白屏或者黑屏(黑還是白取決于你的默認(rèn)主題)。那么,如何解決這種問題的?今天介紹一種比較完美的解決方案:layer_list疊加層

如果你的啟動頁,是一張靜態(tài)圖片,那么這種方式非常適合你。

一般來說,啟動頁都不會很花哨,標(biāo)準(zhǔn)的都是一個logo+app名字,上下排列。類似于下圖:

QQ音樂啟動頁

如果是這樣的,那就是最簡單的,找UI切幾張logo+文字的圖,按照x xx xxx放好,然后drawable文件夾中新建一個layer_splash.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
 <!-- 整體的背景顏色 --> 
 <item android:drawable="@color/white" /> <item> 
 <!-- 中間的圖片 --> 
 <bitmap 
  android:gravity="center" 
  android:src="@drawable/icon_welcome"
  android:scaleType="center" /> 
</item>
</layer-list>

然后在你的清單文件中,給啟動頁Activity單獨設(shè)置一個主題:SplashAppTheme,并在其中引用剛才新建的疊加層布局文件,大功告成!這種方式可以做到秒開,無需任何等待。

<style name="SplashAppTheme" parent="android:Theme">
  <item name="android:windowNoTitle">true</item>
  <item name="android:windowFullscreen">true</item>
  <item name="android:windowBackground">@drawable/layer_splash</item>
</style>

但是,如果你的啟動頁不是這種布局,而是類似于下圖這種:

微博

上下布局,間隔較大,而且上下之間的布局不固定(根據(jù)機(jī)型屏幕大小自動適應(yīng)),這種,該如何處理呢?UI妹紙又要求不能等比例放大顯示,說那樣很丑吧啦吧啦吧。。。

其實我們可以這樣:把上下布局切開,然后就變成了這樣:

splash_top

splash_bottom

我們的xml文件這樣寫:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- 整體的背景顏色 -->
 <item>
  <color android:color="@color/white" />
 </item>
 <!-- 頂部 -->
 <item>
  <bitmap
   android:gravity="top|center_horizontal"
   android:scaleType="center"
   android:src="@drawable/splash_top" />
 </item>
 <!-- 底部 -->
 <item>
  <bitmap   android:gravity="bottom|center_horizontal"
   android:scaleType="center"
   android:src="@drawable/splash_bottom" />
 </item>
</layer-list>

記得top 和 bottom要根據(jù)不同尺寸的啟動頁圖片進(jìn)行切割,這樣就完美解決了各種分辨率屏幕的適配問題(包括平板)。

如果你的啟動頁比較簡潔,和我說的這兩種情況差不多,你完全可以不給啟動頁Activity設(shè)置布局文件(setContentView()),只使用疊加層作為布局顯示。

如果你的app啟動頁比較花哨或者不規(guī)則,你也可以利用這種方式,增加一個比較簡潔的app啟動圖片的疊加層布局,作為啟動頁的主題進(jìn)行加載,啟動初始化完了再進(jìn)行頁面的變化等操作,也可做到秒啟動,不再忍受白屏或者黑屏。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Android日期選擇器實現(xiàn)年月日三級聯(lián)動

    Android日期選擇器實現(xiàn)年月日三級聯(lián)動

    這篇文章主要為大家詳細(xì)介紹了Android日期選擇器實現(xiàn)年月日三級聯(lián)動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android基礎(chǔ)之獲取LinearLayout的寬高

    Android基礎(chǔ)之獲取LinearLayout的寬高

    LinearLayout是線性布局控件,它包含的子控件將以橫向或豎向的方式排列,按照相對位置來排列所有的widgets或者其他的containers,超過邊界時,某些控件將缺失或消失。有的時候,我們需要想獲取LinearLayout寬高,下面通過這篇文章來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • Android實現(xiàn)自定義輪播圖片控件詳解

    Android實現(xiàn)自定義輪播圖片控件詳解

    這篇文章給大家主要介紹了Android實現(xiàn)自定義輪播圖片控件的詳細(xì)過程,文中通過實例代碼介紹的很詳細(xì),相信會對大家的理解和學(xué)習(xí)很有幫助,感興趣的朋友們下面來一起看看吧。
    2016-10-10
  • Android使用getIdentifier()獲取資源Id的方法

    Android使用getIdentifier()獲取資源Id的方法

    這篇文章主要介紹了Android使用getIdentifier()獲取資源Id的方法,涉及Android針對控件資源的相關(guān)操作技巧,需要的朋友可以參考下
    2016-08-08
  • Android中GridView插件的使用方法

    Android中GridView插件的使用方法

    今天小編就為大家分享一篇關(guān)于Android中GridView插件的使用方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Android ViewPager畫廊效果詳解及實例

    Android ViewPager畫廊效果詳解及實例

    這篇文章主要介紹了Android ViewPager畫廊效果詳解及實例的相關(guān)資料,這里提供實例代碼及實現(xiàn)效果圖,具有參考價值,需要的朋友可以參考下
    2016-12-12
  • 實現(xiàn)Android鍵盤的中英文適配

    實現(xiàn)Android鍵盤的中英文適配

    這篇文章主要講了如何實現(xiàn)Android鍵盤的中英文自動適配的功能,如果大家在開發(fā)的時候用到這個功能,跟著學(xué)習(xí)下吧。
    2017-12-12
  • Android圖像切換器imageSwitcher的實例應(yīng)用

    Android圖像切換器imageSwitcher的實例應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了Android圖像切換器imageSwitcher的實例應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Android實現(xiàn)屏幕鎖定源碼詳解

    Android實現(xiàn)屏幕鎖定源碼詳解

    本篇文章主要介紹了Android實現(xiàn)屏幕鎖定源碼詳解,屏幕鎖定是一個很有用的功能,有需要的可以了解一下。
    2016-10-10
  • Android文件下載功能實現(xiàn)代碼

    Android文件下載功能實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Android文件下載功能實現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論