Ladebildschirm hinzufügen

Wenn deine App einen benutzerdefinierten Ladebildschirm enthält oder ein Launcher-Design verwendet, migriere deine 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 Anleitung für die Implementierung. Sie erfahren, wie Sie mithilfe der SplashScreen-Bibliothek einen Ladebildschirm hinzufügen, sodass dieser den Designrichtlinien entspricht.

Abhängigkeiten hinzufügen

Füge der Datei build.gradle deines App-Moduls die folgende Abhängigkeit hinzu:

Groovig

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

Kotlin

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

Achte darauf, dass du Version 1.0.1 oder höher verwendest, damit Wear OS-Standarddimensionen unterstützt werden.

Design hinzufügen

Du kannst ein Design für den Ladebildschirm in res/values/styles.xml erstellen. Das übergeordnete Element hängt von der Form des Symbols ab:

  • Ist das Symbol rund, 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. Lege für die Werte von postSplashScreenTheme das Design fest, das in der Aktivität verwendet werden soll, und für windowSplashScreenAnimatedIcon ein Drawable- oder 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 eine weiße Hintergrundfarbe unter dem Symbol festlegen. Verwenden Sie in diesem Fall Theme.SplashScreen.IconBackground als übergeordnetes Thema und legen Sie das Attribut windowSplashScreenIconBackgroundColor fest:

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

Die anderen Attribute sind optional.

Drawable für das Design erstellen

Für das Design des Begrüßungsbildschirms ist ein Drawable erforderlich, um an das Attribut windowSplashScreenAnimatedIcon zu übergeben. 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 des Symbols für den Ladebildschirm verwenden:

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

Die Größe des Ladebildschirmsymbols wird in res/values/dimens.xml definiert und variiert je nachdem, ob das Symbol rund ist:

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

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

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

Design angeben

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

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

Startaktivität aktualisieren

Installiere den Ladebildschirm in der Startaktivität, bevor du super.onCreate() aufrufst:

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

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

Weitere Informationen

Hier finden Sie allgemeine Informationen zu Ladebildschirmen und dazu, wie Sie sie in Ihrer App verwenden können.