高效啟動頁(Splash),啟動splash
很多應用程式啟動時都需要一個頁面展示公司品牌或者Logo,或者即便不需要這個頁面,如果布局比較複雜,啟動應用的時候會有一個短暫的白屏(跟系統主題相關),往往我們會單獨寫一個Activity,然後顯示一張圖片或者Logo,設定固定的時間延遲啟動真正的MainActivity,這樣未免小題大做,分享一個小技能:
| 1234567891011 |
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <color android:color="@color/background_material_light"/> </item> <item> <bitmap android:src="@drawable/launch_logo_image" android:tileMode="disabled" android:gravity="center"/> </item></layer-list> |
定義底色和一個bitmap展示Logo,Logo置中顯示,超出bitmap大小的地區不進行平鋪或者其他處理;
| 12345 |
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" /> <style name="AppTheme.BrandedLaunch" parent="AppTheme"> <item name="android:windowBackground">@drawable/branded_logo</item></style> |
| 1234 |
<activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.BrandedLaunch"> |
由於這樣會改變整體的主題,想回到原來的系統預設主題可以在onCreate中動態更換:
| 123456 |
@Overrideprotected void onCreate(Bundle savedInstanceState) { setTheme(R.style.AppTheme); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);} |
之前會在應用啟動前,顯示一個短暫的白屏:
使用這種方式後:
是不是舒服很多。