Słowa kluczowe: splashscreen
Jeśli Twoja aplikacja korzysta z niestandardowego ekranu powitalnego lub używa motywu programu uruchamiającego, przenieś ją do biblioteki SplashScreen
, dostępnej w Jetpacku, aby zapewnić jej prawidłowe wyświetlanie we wszystkich wersjach Wear OS.
Na tej stronie znajdziesz szczegółowe instrukcje implementacji, które pomogą Ci dodać ekran powitalny za pomocą biblioteki SplashScreen
, tak aby spełniał on wytyczne dotyczące projektowania.
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-alpha02" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0-alpha02") }
Aby korzystać z 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
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 obiekt 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 nieokrągłej ikony, pod nią musisz ustawić 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 pliku rysowanego dla motywu
Motywy ekranu powitalnego wymagają przekazania obiektu rysowanego do atrybutu windowSplashScreenAnimatedIcon
. Możesz go utworzyć, dodając nowy plik res/drawable/splash_screen.xml
i korzystając z ikony w menu aplikacji. Pamiętaj, aby użyć 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 na ekranie powitalnym 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, dlatego 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 początkowej aktywności – zwykle te, które definiują element w menu 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>
Zmień początkową aktywność
Zainstaluj ekran powitalny w aktywności początkowej przed wywołaniem metody 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 swojej aplikacji.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy obsługa JavaScript jest wyłączona
- Migracja ekranu powitalnego na Androida 12 i nowsze
- Ekrany powitalne
- Integracja działań aplikacji z widżetami na Androidzie