Ladebildschirm hinzufügen

Wenn für deine App ein benutzerdefinierter Ladebildschirm oder ein Launcher-Design verwendet wird, migriere sie zur SplashScreen-Bibliothek, die in Jetpack verfügbar ist, damit sie in allen Wear OS-Versionen korrekt angezeigt wird.

In der Schritt-für-Schritt-Anleitung auf dieser Seite erfährst du, wie du mithilfe der SplashScreen-Bibliothek einen Ladebildschirm hinzufügst, damit der Bildschirm 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")
}

Damit du Wear OS-Standarddimensionen unterstützen kannst, benötigst du Version 1.0.1 oder höher.

Design hinzufügen

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

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

Verwenden Sie windowSplashScreenBackground, um den Hintergrund in einer einzigen schwarzen Farbe zu füllen. Lege für postSplashScreenTheme das Design fest, das für die 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 unter dem Symbol einen weißen Hintergrund festlegen. Verwenden Sie in diesem Fall das 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.

Ein Drawable für das Design erstellen

Für Ladebildschirm-Designs ist ein Drawable erforderlich, um an das Attribut windowSplashScreenAnimatedIcon übergeben zu werden. Sie können sie beispielsweise erstellen, indem Sie die neue Datei res/drawable/splash_screen.xml hinzufügen, das App Launcher-Symbol verwenden und die Größe des Ladebildschirms anpassen:

<?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 Ladebildschirms wird in res/values/dimens.xml definiert und unterscheidet sich, 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 AndroidManifest.xml Ihrer App das Design der zu startenden Aktivität durch das Design, das Sie im vorherigen Schritt erstellt haben. In der Regel sind es solche, 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")
        }
    }
}

Zusätzliche Ressourcen

Weitere Informationen zu Ladebildschirmen im Allgemeinen und zu ihrer Verwendung in deiner App