使用SplashScreen实现闪屏页
前言
水篇小文章
一般我们实现闪屏页是通过自定义主题的windowBackground
,然后在主页恢复正常主题。
而在Android12上,谷歌对闪屏页支持了更多特性(如动画Drawable等)。
并因此在Jetpack中引入了新成员——SplashScreen。
使用该库可以非常简单的实现闪屏页,并完成大部分Android版本的兼容。
API 文档
SplashScreen | Android Developers )
其实文档里的描述非常清晰。
依赖
1 | implementation "androidx.core:core-splashscreen:1.0.0-beta01" |
简单使用
步骤1:定制 themes
改为继承 Theme.SplashScreen.*
,一般Icon背景可以使用"Theme.SplashScreen.IconBackground"
1
2
3
4
5 <style name="Theme.Calendar_manager" parent="Theme.SplashScreen.IconBackground">
<item name="postSplashScreenTheme">@style/Theme.Material3.DayNight</item>
<item name="windowSplashScreenBackground">@android:color/background_light</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/ic_launcher_foreground</item>
</style>
步骤2:将 application 或者启动页 theme 改为该 theme
步骤3:启动页 onCreate 前调用 installSplashScreen()
1 | installSplashScreen() |
进阶使用
延长展示时间
可以使用KeepOnScreenCondition api 进行设置:1
2
3SplashScreen.KeepOnScreenCondition {
return@KeepOnScreenCondition SystemClock.elapsedRealtime() - App.appCreateTime <= 150
}