Menambahkan layar pembuka

Kata kunci: splashscreen

Jika aplikasi Anda menerapkan layar pembuka kustom atau menggunakan tema peluncur, migrasikan aplikasi ke library SplashScreen yang tersedia di Jetpack untuk memastikannya ditampilkan dengan benar di semua perangkat versi Wear OS.

Lihat petunjuk penerapan langkah demi langkah di halaman ini untuk mempelajari cara menambahkan layar pembuka menggunakan library SplashScreen sehingga layar memenuhi pedoman desain.

Menambahkan dependensi

Tambahkan dependensi berikut ke file build.gradle modul aplikasi Anda:

Groovy

dependencies {
    implementation "androidx.core:core-splashscreen:1.2.0-alpha02"
}

Kotlin

dependencies {
    implementation("androidx.core:core-splashscreen:1.2.0-alpha02")
}

Pastikan Anda menggunakan versi 1.0.1 atau yang lebih tinggi, untuk mendapatkan dukungan bagi dimensi Wear OS default.

Menambahkan tema

Buat tema layar pembuka di res/values/styles.xml. Elemen induk bergantung pada bentuk ikon:

  • Jika ikon berbentuk bulat, gunakan Theme.SplashScreen.
  • Jika ikon memiliki bentuk yang berbeda, gunakan Theme.SplashScreen.IconBackground.

Gunakan windowSplashScreenBackground untuk mengisi latar belakang dengan satu warna hitam. Tetapkan nilai postSplashScreenTheme ke tema yang harus digunakan Aktivitas dan windowSplashScreenAnimatedIcon ke drawable atau drawable animasi:

<resources>
    <style name="Theme.App" parent="@android:style/Theme.DeviceDefault" />

    <style name="Theme.App.Starting" parent="Theme.SplashScreen">
        <!-- Set the splash screen background to black -->
        <item name="windowSplashScreenBackground">@android:color/black</item>
        <!-- Use windowSplashScreenAnimatedIcon to add a drawable or an animated
             drawable. -->
        <item name="windowSplashScreenAnimatedIcon">@drawable/splash_screen</item>
        <!-- Set the theme of the Activity that follows your splash screen. -->
        <item name="postSplashScreenTheme">@style/Theme.App</item>
    </style>
</resources>

Jika menggunakan ikon non-bulat, Anda harus menetapkan warna latar belakang putih di bawah ikon Anda. Dalam hal ini, gunakan Theme.SplashScreen.IconBackground sebagai tema induk dan tetapkan atribut windowSplashScreenIconBackgroundColor:

<style name="Theme.App.Starting" parent="Theme.SplashScreen.IconBackground">
    ...
    <!-- Set a white background behind the splash screen icon. -->
    <item name="windowSplashScreenIconBackgroundColor">@android:color/white</item>
</style>

Atribut lainnya bersifat opsional.

Membuat drawable untuk tema

Tema layar pembuka memerlukan drawable untuk diteruskan ke atribut windowSplashScreenAnimatedIcon. Misalnya, Anda dapat membuatnya dengan menambahkan file baru res/drawable/splash_screen.xml dan menggunakan ikon peluncur aplikasi serta ukuran ikon layar pembuka yang benar:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:width="@dimen/splash_screen_icon_size"
        android:height="@dimen/splash_screen_icon_size"
        android:drawable="@mipmap/ic_launcher"
        android:gravity="center" />
</layer-list>

Ukuran ikon layar pembuka ditentukan dalam res/values/dimens.xml dan berbeda bergantung pada apakah ikon berbentuk bulat:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Round app icon can take all of default space -->
    <dimen name="splash_screen_icon_size">48dp</dimen>
</resources>

...atau tidak bulat, sehingga harus menggunakan latar belakang ikon:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Non-round icon with background must use reduced size to fit circle -->
    <dimen name="splash_screen_icon_size">36dp</dimen>
</resources>

Menentukan tema

Di file manifes aplikasi Anda (AndroidManifest.xml), ganti tema aktivitas awal--biasanya aktivitas yang menentukan item peluncur atau yang diekspor--ke tema yang Anda buat di langkah sebelumnya:

<manifest>
    <application android:theme="@style/Theme.App.Starting">
       <!-- or -->
       <activity android:theme="@style/Theme.App.Starting">
          <!-- ... -->
</manifest>

Mengupdate aktivitas awal Anda

Instal layar pembuka Anda di aktivitas awal sebelum memanggil super.onCreate():

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        // Handle the splash screen transition.
        installSplashScreen()

        super.onCreate(savedInstanceState)
        setContent {
            WearApp("Wear OS app")
        }
    }
}

Referensi lainnya

Pelajari lebih lanjut layar pembuka secara umum dan cara menggunakannya di aplikasi Anda.