As per official Document we can customise default splash screen of Android 12 and higher versions, Or you can Migrate your existing splash screen implementation to Android 12 and higher, i have used following steps to customise my apps splash screen
Step 1 : Add below gradle line in build.gradle (App level) and Sync Now
implementation 'androidx.core:core-splashscreen:1.1.0-alpha01'
Setp 2 : Add below lines of code to your themes.xml
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
<!-- Set the splash screen background, animated icon, and animation duration. -->
<item name="windowSplashScreenBackground">@android:color/transparent</item>
<item name="windowSplashScreenAnimationDuration">50</item>
<!-- Set the theme of the Activity that directly follows your splash screen. -->
<!-- Required -->
<item name="postSplashScreenTheme">@style/Theme.Your_App_Name</item>
</style>
Step 3 : Now apply "Theme.App.Starting" theme in splash screen from manifest.xml, after apply theme code will be look like below
<activity
android:theme="@style/Theme.App.Starting"
android:name=".Splash"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Step 4 : Now add below line of code to Splash screen activity in onCreate() method before super.onCreate(savedInstanceState);
SplashScreen.installSplashScreen(this);
After add above code in your splash screen activity onCreate() mwthod will be look like this
@Override
protected void onCreate(Bundle savedInstanceState) {
SplashScreen.installSplashScreen(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
}
Now default splash screen customised
Note : I have answered of this question in Java, you can convert these lines of codes in kotlin
Happy coding.