App的启动页非常的常见,几乎现在所有的APP都会有吧~实现的方式也各种各样,那在这里我就记录一下我的实现方案,方便下次使用。
通常呢我们可能会建一个启动页的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中设置延时三秒跳转。
Thread {
Thread.sleep(3000)
runOnUiThread {
startActivity(MainActivity::class.java)
}
}
将启动页的Activity设为入口Activity。ok收工。
笔者能力有限,不足之处欢迎指出。
网友评论