Dodaj ekran powitalny

Jeśli Twoja aplikacja korzysta z niestandardowego ekranu powitalnego lub 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ć we wszystkich wersjach Wear OS.

Na tej stronie znajdziesz szczegółowe instrukcje wdrażania, które pomogą Ci dodać ekran powitalny za pomocą SplashScreenbiblioteki, tak 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-rc01"
}

Kotlin

dependencies {
    implementation("androidx.core:core-splashscreen:1.2.0-rc01")
}

Aby korzystać z domyślnych wymiarów Wear OS, musisz mieć wersję 1.0.1 lub nowszą.

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 rysunku 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 uruchamiający 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.