Mots clés: splashscreen
Si votre application implémente un écran de démarrage personnalisé ou utilise un thème de lanceur, migrez-la vers la bibliothèque SplashScreen
, disponible dans Jetpack, pour vous assurer qu'elle s'affiche correctement sur toutes les version de Wear OS.
Consultez les instructions d'implémentation détaillées de cette page pour découvrir comment ajouter un écran de démarrage à l'aide de la bibliothèque SplashScreen
afin qu'il respecte les consignes de conception.
Ajouter des dépendances
Ajoutez la dépendance suivante au fichier build.gradle
du module de votre application :
Groovy
dependencies { implementation "androidx.core:core-splashscreen:1.2.0-alpha02" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0-alpha02") }
Assurez-vous d'utiliser la version 1.0.1
ou une version ultérieure pour profiter de la prise en charge des dimensions Wear OS par défaut.
Ajouter un thème
Créez un thème d'écran de démarrage dans res/values/styles.xml
. L'élément parent dépend de la forme de l'icône :
- Si l'icône est circulaire, utilisez
Theme.SplashScreen
. - Si l'icône a une forme différente, utilisez
Theme.SplashScreen.IconBackground
.
Utilisez windowSplashScreenBackground
pour remplir l'arrière-plan avec une couleur noire unie. Définissez les valeurs de postSplashScreenTheme
sur le thème que l'activité doit utiliser et l'objet windowSplashScreenAnimatedIcon
sur un drawable standard ou un drawable animé :
<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>
Si vous utilisez une icône non circulaire, vous devez définir une couleur d'arrière-plan blanche sous l'icône. Dans ce cas, utilisez Theme.SplashScreen.IconBackground
comme thème parent et définissez l'attribut 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>
Les autres attributs sont facultatifs.
Créer un drawable pour le thème
Les thèmes de l'écran de démarrage nécessitent un drawable pouvant être transmis dans l'attribut windowSplashScreenAnimatedIcon
. Par exemple, vous pouvez le créer en ajoutant un nouveau fichier res/drawable/splash_screen.xml
et en utilisant l'icône du lanceur d'applications et la taille correcte de l'icône de l'écran de démarrage :
<?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>
La taille de l'icône de l'écran de démarrage est définie dans res/values/dimens.xml
et varie selon que l'icône est circulaire :
<?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>
...ou non et doit donc utiliser l'arrière-plan de l'icône :
<?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>
Spécifier le thème
Dans le fichier manifeste de votre application (AndroidManifest.xml
), remplacez le thème de l'activité de démarrage (généralement celui qui définit un élément de lanceur ou qui est exporté) par le thème que vous avez créé à l'étape précédente :
<manifest>
<application android:theme="@style/Theme.App.Starting">
<!-- or -->
<activity android:theme="@style/Theme.App.Starting">
<!-- ... -->
</manifest>
Mettre à jour votre activité de démarrage
Installez votre écran de démarrage dans l'activité de démarrage avant d'appeler super.onCreate()
:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Handle the splash screen transition.
installSplashScreen()
super.onCreate(savedInstanceState)
setContent {
WearApp("Wear OS app")
}
}
}
Ressources supplémentaires
Familiarisez-vous avec les écrans de démarrage en général et découvrez comment les utiliser dans votre application.
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé
- Migrer votre implémentation d'écran de démarrage vers Android 12 et versions ultérieures
- Écrans de démarrage
- Intégrer les actions dans les applications avec les widgets Android