簡単なアプリアイコンが表示されるSplash画面を追加する方法です
詳しくは以下を参照
https://developer.android.com/guide/topics/ui/splash-screen?hl=ja
Splash画面を追加するにはandroidx.core:core-splashscreenをimplementationしてください
res/values/themes.xmlにSplash画面用のテーマを追加します
postSplashScreenThemeに設定する値は元のテーマのnameです
<resources>
<style name="Theme.xxx" parent="android:Theme.Material.Light.NoActionBar" />
<style name="AppTheme.Splash" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/black</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/ic_launcher</item>
<item name="windowSplashScreenAnimationDuration">100</item>
<item name="postSplashScreenTheme">@style/Theme.xxx</item>
</style>
</resources>
テーマをSplash画面のものに変更
<application
android:theme="@style/AppTheme.Splash">
MainActivityのonCreateに以下を実装
setKeepOnScreenConditionの戻値がtrueだとSplash画面が出っぱなしになるのでfalse
postSplashScreenThemeの設定でSplash画面のテーマが元のテーマに戻るはずですが戻らないという話もあるそうです
ここでは明示的に戻しています
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val splashScreen = installSplashScreen()
splashScreen.setKeepOnScreenCondition { false }
CoroutineScope(Dispatchers.Default).launch {
setTheme(R.style.Theme_xxx)
}
}
}
}
Android Studio Giraffe 2022.3.1 built on June 29, 2023