Başlangıç ekranı ekle

Uygulamanız özel bir başlangıç ekranı uyguluyorsa veya başlatıcı teması kullanıyorsa tüm Wear OS sürümlerinde doğru şekilde gösterilmesi için uygulamanızı Jetpack'te bulunan SplashScreen kitaplığına taşıyın.

SplashScreen kitaplığını kullanarak tasarım yönergelerine uygun bir başlangıç ekranı eklemeyi öğrenmek için bu sayfadaki adım adım uygulama talimatlarını inceleyin.

Bağımlılık ekleme

Aşağıdaki bağımlılığı uygulama modülünüzün build.gradle dosyasına ekleyin:

Groovy

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

Kotlin

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

Varsayılan Wear OS boyutları için destek almak istiyorsanız 1.0.1 veya daha yeni bir sürümü kullandığınızdan emin olun.

Tema ekleme

res/values/styles.xml içinde bir başlangıç ekranı teması oluşturun. Üst öğe, simgenin şekline bağlıdır:

  • Simge yuvarlaksa Theme.SplashScreen simgesini kullanın.
  • Simge farklı bir şekle sahipse Theme.SplashScreen.IconBackground kullanın.

Arka planı tek bir siyah renkle doldurmak için windowSplashScreenBackground kullanın. postSplashScreenTheme değerini, etkinliğin kullanması gereken temaya, windowSplashScreenAnimatedIcon değerini ise çizilebilir veya animasyonlu çizilebilir bir öğeye ayarlayın:

<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>

Yuvarlak olmayan bir simge kullanıyorsanız simgenizin altına beyaz bir arka plan rengi ayarlamanız gerekir. Bu durumda, Theme.SplashScreen.IconBackground temasını üst tema olarak kullanın ve windowSplashScreenIconBackgroundColor özelliğini ayarlayın:

<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>

Diğer özellikler isteğe bağlıdır.

Tema için çizilebilir öğe oluşturma

Başlangıç ekranı temaları, windowSplashScreenAnimatedIcon özelliğine aktarılacak bir çizilebilir öğe gerektirir. Örneğin, yeni bir dosya res/drawable/splash_screen.xml ekleyip uygulama başlatıcı simgesini ve doğru başlangıç ekranı simge boyutunu kullanarak oluşturabilirsiniz:

<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>

Başlangıç ekranı simge boyutu res/values/dimens.xml cinsinden tanımlanır ve simgenin yuvarlak olup olmamasına göre farklılık gösterir:

<resources>
    <!-- Round app icon can take all of default space -->
    <dimen name="splash_screen_icon_size">48dp</dimen>
</resources>

...veya yuvarlak olmayan ve bu nedenle simge arka planını kullanması gereken simgeler:

<resources>
    <!-- Non-round icon with background must use reduced size to fit circle -->
    <dimen name="splash_screen_icon_size">36dp</dimen>
</resources>

Temayı belirtin

Uygulamanızın manifesto dosyasında (AndroidManifest.xml), başlangıç etkinliğinin (genellikle başlatıcı öğesini tanımlayan veya başka bir şekilde dışa aktarılan etkinlikler) temasını önceki adımda oluşturduğunuz temayla değiştirin:

<activity
    android:name=".snippets.SplashScreenActivity"
    android:exported="true"
    android:taskAffinity=""
    android:theme="@style/Theme.App.Starting">
    <!-- ... -->
</activity>

Başlangıç etkinliğinizi güncelleme

super.onCreate() yöntemini çağırıp composable'ınızı yüklemeden önce başlangıç etkinliğinde başlangıç ekranınızı yükleyin:

class SplashScreenActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        installSplashScreen()
        super.onCreate(savedInstanceState)

        setContent {
            WearApp()
        }
    }
}

Ek kaynaklar

Genel olarak başlangıç ekranları ve bunları uygulamanızda nasıl kullanabileceğiniz hakkında daha fazla bilgi edinin.