Jeśli Twoja aplikacja ma niestandardowy ekran powitalny lub używa motywu programu uruchamiającego, przenieś ją do biblioteki SplashScreen
dostępnej w Jetpack, aby mieć pewność, że będzie się prawidłowo wyświetlać we wszystkich wersjach Wear OS.
Zapoznaj się ze szczegółowymi instrukcjami implementacji na tej stronie, aby dowiedzieć się, jak dodać ekran powitalny za pomocą biblioteki SplashScreen
w taki sposób, aby był zgodny ze wskazówkami dotyczącymi projektowania.
Dodaj zależności
Dodaj tę zależność do pliku build.gradle
modułu aplikacji:
Odlotowy
dependencies { implementation "androidx.core:core-splashscreen:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0-alpha01") }
Aby móc korzystać z domyślnych wymiarów Wear OS, upewnij się, że używasz wersji 1.0.1
lub nowszej.
Dodaj motyw
Utwórz motyw ekranu powitalnego w aplikacji res/values/styles.xml
. Element nadrzędny zależy od kształtu ikony:
- Jeśli ikona jest okrągła, użyj
Theme.SplashScreen
. - Jeśli ikona ma inny kształt, użyj
Theme.SplashScreen.IconBackground
.
Użyj metody windowSplashScreenBackground
, aby wypełnić tło jednym czarnym kolorem. Ustaw wartości postSplashScreenTheme
na motyw, którego ma używać aktywność, a jako windowSplashScreenAnimatedIcon
na element rysowalny lub animowany:
<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>
Jeśli używasz ikony nieokrągłej, musisz ustawić pod nią białe tło. W tym przypadku użyj Theme.SplashScreen.IconBackground
jako motywu nadrzędnego i ustaw atrybut 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>
Pozostałe atrybuty są opcjonalne.
Utwórz obiekt rysowalny dla motywu
Motywy ekranu powitalnego wymagają elementu, który można przeciągnąć do atrybutu windowSplashScreenAnimatedIcon
. Możesz na przykład dodać nowy plik res/drawable/splash_screen.xml
i użyć ikony menu z aplikacjami oraz ustawić odpowiedni rozmiar ikony na ekranie powitalnym:
<?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>
Rozmiar ikony na ekranie powitalnym jest określony w res/values/dimens.xml
i różni się w zależności od tego, czy ikona jest zaokrąglona:
<?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>
...lub nieokrągłe, dlatego musi mieć tło ikony:
<?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>
Określ motyw
W pliku manifestu aplikacji (AndroidManifest.xml
) zastąp motyw początkowy działania – zwykle tych, które definiują element programu uruchamiającego lub są eksportowane w inny sposób – motywem utworzonym w poprzednim kroku:
<manifest>
<application android:theme="@style/Theme.App.Starting">
<!-- or -->
<activity android:theme="@style/Theme.App.Starting">
<!-- ... -->
</manifest>
Zaktualizuj aktywność początkową
Zanim wywołasz połączenie super.onCreate()
, zainstaluj ekran powitalny w czynności początkowej:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Handle the splash screen transition.
installSplashScreen()
super.onCreate(savedInstanceState)
setContent {
WearApp("Wear OS app")
}
}
}
Dodatkowe materiały
Dowiedz się więcej o ekranach powitalnych i o tym, jak ich używać w swojej aplikacji.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony
- Pierwsze kroki z kafelkami
- Aktywne dane i ćwiczenia
- Aktualizacje danych pasywnych