Jeśli Twoja aplikacja ma niestandardowy ekran powitalny lub korzysta z motywu programu uruchamiającego, przenieś ją do biblioteki SplashScreen
dostępnej w Jetpacku, aby mieć pewność, że będzie się ona prawidłowo wyświetlać na wszystkich wersjach Wear OS.
Na tej stronie znajdziesz szczegółowe instrukcje wdrażania, które pomogą Ci dodać ekran powitalny za pomocą biblioteki SplashScreen
w taki sposób, aby spełniał on wytyczne projektowe.
Dodawanie zależności
Dodaj do pliku build.gradle
modułu aplikacji tę zależność:
Groovy
dependencies { implementation "androidx.core:core-splashscreen:1.2.0-beta02" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0-beta02") }
Aby uzyskać obsługę domyślnych wymiarów Wear OS, upewnij się, że używasz wersji 1.0.1
lub nowszej.
Dodawanie motywu
Utwórz motyw ekranu powitalnego w res/values/styles.xml
. Element nadrzędny zależy od kształtu ikony:
- Jeśli ikona jest okrągła, użyj symbolu
Theme.SplashScreen
. - Jeśli ikona ma inny kształt, użyj elementu
Theme.SplashScreen.IconBackground
.
Użyj windowSplashScreenBackground
, aby wypełnić tło jednym czarnym kolorem. Ustaw wartości postSplashScreenTheme
na motyw, którego ma używać aktywność, a windowSplashScreenAnimatedIcon
na rysunek lub animowany rysunek:
<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, która nie jest okrągła, musisz ustawić pod nią białe tło. W takim 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.
Tworzenie elementu rysowalnego dla motywu
Motywy ekranu powitalnego wymagają przekazania elementu rysowalnego do atrybutu windowSplashScreenAnimatedIcon
. Możesz na przykład utworzyć go, dodając nowy plik res/drawable/splash_screen.xml
i używając ikony programu uruchamiającego aplikację oraz prawidłowego rozmiaru ikony ekranu powitalnego:
<?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 ekranu powitalnego jest zdefiniowany w res/values/dimens.xml
i różni się w zależności od tego, czy ikona jest okrągła:
<?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 nie są okrągłe, więc muszą używać tła 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ślanie motywu
W pliku manifestu aplikacji (AndroidManifest.xml
) zastąp motyw aktywności początkowej – zwykle tej, która definiuje element programu uruchamiającego lub jest w inny sposób eksportowana – motywem utworzonym w poprzednim kroku:
<manifest>
<application android:theme="@style/Theme.App.Starting">
<!-- or -->
<activity android:theme="@style/Theme.App.Starting">
<!-- ... -->
</manifest>
Aktualizowanie aktywności początkowej
Zainstaluj ekran powitalny w działaniu początkowym przed wywołaniem super.onCreate()
:
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 możesz ich używać w aplikacji.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony.
- Migracja implementacji ekranu powitalnego na Androida 12 i nowsze wersje
- Ekrany powitalne
- Integracja działań w aplikacji z widżetami na Androidzie