Ladebildschirm hinzufügen

Wenn Ihre App einen benutzerdefinierten Splash Screen implementiert oder ein Launcher-Design verwendet, migrieren Sie Ihre App zur SplashScreen-Bibliothek, die in Jetpack verfügbar ist, damit sie auf allen Wear OS-Versionen korrekt angezeigt wird.

Auf dieser Seite finden Sie eine detaillierte Implementierungsanleitung, in der Sie erfahren, wie Sie mit der SplashScreen-Bibliothek einen Splash Screen hinzufügen, der den Designrichtlinien entspricht.

Abhängigkeiten hinzufügen

Fügen Sie die folgende Abhängigkeit der build.gradle-Datei Ihres App-Moduls hinzu:

Groovy

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

Kotlin

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

Verwenden Sie Version 1.0.1 oder höher, um Unterstützung für die Standardabmessungen von Wear OS zu erhalten.

Design hinzufügen

Erstellen Sie in res/values/styles.xml ein Splash Screen-Design. Das übergeordnete Element hängt von der Form des Symbols ab:

  • Wenn das Symbol rund ist, verwenden Sie Theme.SplashScreen.
  • Wenn das Symbol eine andere Form hat, verwenden Sie Theme.SplashScreen.IconBackground.

Verwenden Sie windowSplashScreenBackground, um den Hintergrund mit einer einzelnen schwarzen Farbe zu füllen. Legen Sie für postSplashScreenTheme das Design fest, das die Aktivität verwenden soll, und für windowSplashScreenAnimatedIcon ein Drawable oder ein animiertes Drawable:

<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>

Wenn Sie ein nicht rundes Symbol verwenden, müssen Sie unter dem Symbol eine weiße Hintergrundfarbe festlegen. Verwenden Sie in diesem Fall Theme.SplashScreen.IconBackground als übergeordnetes Design und legen Sie das Attribut windowSplashScreenIconBackgroundColor fest:

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

Die anderen Attribute sind optional.

Drawable für das Design erstellen

Für Splash Screen-Designs ist ein Drawable erforderlich, das an das Attribut windowSplashScreenAnimatedIcon übergeben wird. Sie können es beispielsweise erstellen, indem Sie eine neue Datei res/drawable/splash_screen.xml hinzufügen und das App-Launcher-Symbol und die richtige Größe für das Splash Screen-Symbol verwenden:

<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>

Die Größe des Splash Screen-Symbols wird in res/values/dimens.xml definiert und hängt davon ab, ob das Symbol rund ist:

<resources>
    <!-- Round app icon can take all of default space -->
    <dimen name="splash_screen_icon_size">48dp</dimen>
</resources>

...oder nicht rund und daher den Symbolhintergrund verwenden muss:

<resources>
    <!-- Non-round icon with background must use reduced size to fit circle -->
    <dimen name="splash_screen_icon_size">36dp</dimen>
</resources>

Design angeben

Ersetzen Sie in der Manifestdatei Ihrer App (AndroidManifest.xml) das Design der Startaktivität – in der Regel die, die ein Launcher-Element definieren oder anderweitig exportiert werden – durch das Design, das Sie im vorherigen Schritt erstellt haben:

<activity
    android:name=".snippets.SplashScreenActivity"
    android:exported="true"
    android:taskAffinity=""
    android:theme="@style/Theme.App.Starting">
    <!-- ... -->
</activity>

Startaktivität aktualisieren

Installieren Sie Ihren Splash Screen in der Startaktivität, bevor Sie super.onCreate() aufrufen und Ihre zusammensetzbare Funktion laden:

class SplashScreenActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        installSplashScreen()
        super.onCreate(savedInstanceState)

        setContent {
            WearApp()
        }
    }
}

Zusätzliche Ressourcen

Weitere Informationen zu Splash Screens im Allgemeinen und dazu, wie Sie sie in Ihrer App verwenden können