1.在 build.gradle 文件中,更改 compileSdkVersion(需要大于等于31),并在依赖项中添加 SplashScreen compat 库。
build.gradleandroid { compileSdkVersion 31 ...}dependencies { ... implementation 'androidx.core:core-splashscreen:1.0.0-alpha01'}
2.创建一个以Theme.SplashScreen为父级的主题,并将 postSplashScreenTheme 的值设为 Activity的主题,同时将 windowSplashScreenAnimatedIcon 设为静态或动态图片。其他属性可视需要进行设置。
<style name="Theme.App.Starting" parent="Theme.SplashScreen"> #启动页背景色 <item name="windowSplashScreenBackground">@color/white</item> #icon 支持静态和动画 <item name="windowSplashScreenAnimatedIcon">@mipmap/ic_launcher</item> # 动画时长 <item name="windowSplashScreenAnimationDuration">200</item> #启动页退出后的Activity主题 <item name="postSplashScreenTheme">@style/Theme.SchoolApp</item></style>
3.AndroidManifest.xml中,将启动的activity 的主题替换为上一步创建的主题。
<activity android:name=".ui.activity.SplashActivity" android:theme="@style/Theme.App.Starting" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity>
4.在SplashActivity中,先调用installSplashScreen,然后再调用 setContentView。
override fun onCreate(savedInstanceState: Bundle?) { val splashScreen = installSplashScreen() super.onCreate(savedInstanceState) splashScreen.setKeepOnScreenCondition { true } Timer().schedule(1000L) { startActivity<MainActivity>() finish() }}
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除