App的啟動頁非常的常見,幾乎現(xiàn)在所有的APP都會有吧~實現(xiàn)的方式也各種各樣,那在這里我就記錄一下我的實現(xiàn)方案,方便下次使用。
通常呢我們可能會建一個啟動頁的Activity,然后在最外層布局中設置背景,但是這樣有一個很明顯的缺陷,當我們在Application中初始化的東西比較多時,啟動APP的瞬間會有短暫的白屏或黑屏,這就顯得很尷尬了...
我的方案是這樣的,新建一個啟動頁的Activity,但是不設置背景圖片,而是為這個Activity設置一個theme:
<activity
android:name=".controller.activity.main.welcome.WelcomeActivity"
android:screenOrientation="portrait"
android:theme="@style/App">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<style name="App" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/start3</item>
</style>
style中最重要的是android:windowBackground 這個屬性,他是給此Activity的window窗口設置一個背景。
接下來我們在Activity中設置延時三秒跳轉(zhuǎn)。
Thread {
Thread.sleep(3000)
runOnUiThread {
startActivity(MainActivity::class.java)
}
}
將啟動頁的Activity設為入口Activity。ok收工。
筆者能力有限,不足之處歡迎指出。