Se la tua app implementa una schermata iniziale personalizzata o utilizza un tema di avvio, esegui la migrazione
della tua app alla libreria SplashScreen, disponibile in Jetpack, per assicurarti che
venga visualizzata correttamente su tutte le versioni di Wear OS.
Per scoprire come aggiungere una
schermata iniziale utilizzando la libreria SplashScreen in modo che soddisfi le
linee guida per la progettazione, consulta le istruzioni di implementazione passo passo riportate in questa pagina.
Aggiungi dipendenze
Aggiungi la seguente dipendenza al file build.gradle del modulo dell'app:
Groovy
dependencies { implementation "androidx.core:core-splashscreen:1.2.0" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0") }
Assicurati di utilizzare la versione 1.0.1 o successive per ottenere il supporto per le dimensioni
predefinite di Wear OS.
Aggiunta di un tema
Crea un tema per la schermata iniziale in res/values/styles.xml. L'elemento principale
dipende dalla forma dell'icona:
- Se l'icona è rotonda, utilizza
Theme.SplashScreen. - Se l'icona ha una forma diversa, utilizza
Theme.SplashScreen.IconBackground.
Usa windowSplashScreenBackground per riempire lo sfondo con un unico colore nero. Imposta i valori di postSplashScreenTheme sul tema che deve utilizzare l'attività e windowSplashScreenAnimatedIcon su una risorsa disegnabile o animata:
<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>
Se utilizzi un'icona non rotonda, devi impostare un colore di sfondo bianco sotto
l'icona. In questo caso, utilizza Theme.SplashScreen.IconBackground come tema
principale e imposta l'attributo windowSplashScreenIconBackgroundColor:
<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>
Gli altri attributi sono facoltativi.
Crea una risorsa disegnabile per il tema
I temi della schermata iniziale richiedono un elemento disegnabile da passare all'attributo
windowSplashScreenAnimatedIcon. Ad esempio, puoi crearlo
aggiungendo un nuovo file res/drawable/splash_screen.xml e utilizzando l'icona di avvio delle app
e le dimensioni corrette dell'icona della schermata iniziale:
<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>
Le dimensioni dell'icona della schermata iniziale sono definite in res/values/dimens.xml e variano
a seconda che l'icona sia rotonda:
<resources> <!-- Round app icon can take all of default space --> <dimen name="splash_screen_icon_size">48dp</dimen> </resources>
…o non rotonda e quindi deve utilizzare lo sfondo dell'icona:
<resources> <!-- Non-round icon with background must use reduced size to fit circle --> <dimen name="splash_screen_icon_size">36dp</dimen> </resources>
Specificare il tema
Nel file manifest dell'app (AndroidManifest.xml), sostituisci il tema dell'attività iniziale, in genere quelle che definiscono un elemento di avvio o che vengono esportate in altro modo, con il tema che hai creato nel passaggio precedente:
<activity android:name=".snippets.SplashScreenActivity" android:exported="true" android:taskAffinity="" android:theme="@style/Theme.App.Starting"> <!-- ... --> </activity>
Aggiornare l'attività iniziale
Installa la schermata iniziale nell'attività iniziale prima di chiamare
super.onCreate():
class SplashScreenActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { installSplashScreen() super.onCreate(savedInstanceState) setContent { WearApp() } } }
Risorse aggiuntive
Scopri di più sulle schermate iniziali in generale e su come utilizzarle nella tua app.
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Eseguire la migrazione dell'implementazione della schermata iniziale ad Android 12 e versioni successive
- Splash screen
- Integrare le Azioni app con i widget per Android