Для реализации правильного заставки следуйте инструкциям , указанным @Sander.
В двух словах, чтобы реализовать экран-заставку, вам нужно SplashTheme
, например:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_background</item>
</style>
splash_background
должно быть нарисовано так:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque"> <!-- android:opacity="opaque" should be here -->
<item>
<!--this is your background, you can use color, gradient etc.-->
<color android:color="@color/colorPrimary"/>
<!--<shape>
<gradient
android:angle="315"
android:endColor="#1a82ff"
android:startColor="#2100d3"
android:type="linear"/>
</shape> -->
</item>
<item>
<bitmap android:src="@drawable/ic_logo"
android:gravity="center"/>
</item>
</layer-list>
В Manifest
просто добавьте SplashTheme
к своей активности:
<activity android:name=".ui.MainActivity"
android:theme="@style/SplashTheme">
Затем в MainActivity
, чтобы вернуться к обычному AppTheme
, сделайте это за onCreate
до super
вызова:
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.AppTheme)
super.onCreate(savedInstanceState)
.....