Wenn deine App einen benutzerdefinierten Splash Screen implementiert 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.
Eine detaillierte Anleitung zum Hinzufügen eines Splash Screens mit der SplashScreen-Bibliothek, der den Designrichtlinien entspricht, findest du auf dieser Seite.
Abhängigkeiten hinzufügen
Fügen Sie der Datei build.gradle Ihres App-Moduls die folgende Abhängigkeit hinzu:
Groovy
dependencies { implementation "androidx.core:core-splashscreen:1.2.0" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0") }
Sie müssen Version 1.0.1 oder höher verwenden, um Unterstützung für die Standarddimensionen von Wear OS zu erhalten.
Design hinzufügen
Erstellen Sie ein Splash-Screen-Design in res/values/styles.xml. 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, verwende
Theme.SplashScreen.IconBackground.
Verwenden Sie windowSplashScreenBackground, um den Hintergrund mit einer einzigen 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 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 du ein nicht rundes Symbol verwendest, musst du 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 Ladebildschirm-Designs muss ein Drawable an das Attribut windowSplashScreenAnimatedIcon übergeben werden. Sie können sie 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 Ladebildschirm-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 Symbols auf dem Ladebildschirm ist in res/values/dimens.xml definiert und unterscheidet sich je nachdem, 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 müssen daher den Symbolhintergrund verwenden:
<resources> <!-- Non-round icon with background must use reduced size to fit circle --> <dimen name="splash_screen_icon_size">36dp</dimen> </resources>
Design angeben
Ersetze in der Manifestdatei deiner App (AndroidManifest.xml) das Design der Startaktivität – in der Regel die Aktivitäten, die ein Launcher-Element definieren oder anderweitig exportiert werden – durch das Design, das du im vorherigen Schritt erstellt hast:
<activity android:name=".snippets.SplashScreenActivity" android:exported="true" android:taskAffinity="" android:theme="@style/Theme.App.Starting"> <!-- ... --> </activity>
Startaktivität aktualisieren
Installiere deinen Splash Screen in der Startaktivität, bevor du super.onCreate() aufrufst und deine komponierbare Funktion lädst:
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 wie du sie in deiner App verwenden kannst
Empfehlungen für Sie
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Splash Screen-Implementierung zu Android 12 und höher migrieren
- Splash Screens
- App-Aktionen in Android-Widgets einbinden