Android 啟動體驗最優解
阿新 • • 發佈:2018-12-29
大部分 Android 專案中都存在很多的第三方 SDK, 而這些 SDK 也基本都需要在Application 裡面去初始化,這就會到 App 冷啟動時會出現短暫的黑屏。
按照網上大多數方法解決黑屏的方式一般是把啟動介面的 theme 設定為背景透明。
<item name="android:windowBackground">@android:color/transparent</item>
還有一種方式是把啟動介面的背景設定為一張圖片
<?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="center" android:src="@drawable/ic_launcher" /> </item> </layer-list>
但是這種方式還有一些問題:
- 全面屏手機( 螢幕比例大於16:9的 )會發生圖片變形的情況
- 展示背景到展示真正介面的UI過程圖示或佈局會不統一
所以我們進行一下小的改進:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 背景顏色 --> <item android:drawable="@android:color/white" /> <item android:width="150dp" android:height="144dp" android:bottom="100dp" android:drawable="@drawable/ic_splash_logo_common" android:gravity="center" /> </layer-list>
這樣我們可以控制圖片的大小,我們可以控制圖片的位置,可以使背景和真正的Splash佈局完全重合,優化啟動的體驗!