如果app不做任何处理,在桌面点击app图标和第一个activity呈现之间,有一个白屏的时间,并且该时间随着Application里面初始化的东西增加而增加。

我们需要做的是像大多数app一样,为我们的app增加一个开屏页面,在用户点击图标和真正的页面展示的中间给用户看一些图片,而不是一个白屏的页面。以下是具体步骤:
- 新建一个SplashActivity并设置为启动页;
- 在drawable文件夹下创建一个新的drawable叫做bg_splash;
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/white" />
</shape>
</item>
<item>
<bitmap
android:gravity="center"
android:src="@drawable/baseline_account_balance_black_48dp" />
</item>
</layer-list>
- 在style.xml文件里面建立一个新的style叫做SplashTheme并应用于SplashActivity;
<style name="SplashTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@drawable/bg_splash</item>
</style>
- 在SplashActivity里面注释掉setContentView方法,并在其后启动我们的MainActivity;
class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// setContentView(R.layout.activity_splash)
startActivity(Intent(this, MainActivity::class.java))
finish()
}
}
-
再次启动app,就会发现没有白屏页面,在点击app图标和展示首页中间会是我们的开屏页面。效果如下:
SVID_20201229_163656_1.2020-12-29 16_39_08.gif
注意
- bitmap的src不能是xml,只能是图片
网友评论