Başlangıç ekranı ekle

Anahtar kelimeler: splashscreen

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

SplashScreen kitaplığını kullanarak ekranın tasarım yönergelerine uygun olacak şekilde nasıl açılış ekranı ekleyeceğinizi öğrenmek için bu sayfadaki adım adım uygulama talimatlarına bakın.

Bağımlılık ekleme

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

Groovy

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

Kotlin

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

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

Tema ekleme

res/values/styles.xml'te bir açılış 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 simgesini kullanın.

Arka planı tek bir siyah renkle doldurmak için windowSplashScreenBackground simgesini kullanın. postSplashScreenTheme değerini, etkinliğin kullanması gereken temaya, windowSplashScreenAnimatedIcon değerini ise bir çizilebilir veya animasyonlu çizilebilir öğ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 simgesinin altına beyaz arka plan rengi ayarlamanız gerekir. Bu durumda, üst tema olarak Theme.SplashScreen.IconBackground'ü kullanın ve windowSplashScreenIconBackgroundColor özelliğini ayarlayın:

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

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

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

Açılış ekranı temaları için windowSplashScreenAnimatedIcon özelliğine bir çizilebilir öğe aktarılması gerekir. Örneğin, yeni bir dosya res/drawable/splash_screen.xml ekleyerek ve uygulama başlatıcı simgesini ve doğru açılış ekranı simgesi boyutunu kullanarak oluşturabilirsiniz:

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

Başlangıç ekranı simgesi boyutu res/values/dimens.xml içinde tanımlanır ve simgenin yuvarlak olup olmadığına bağlı olarak farklılık gösterir:

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

...veya yuvarlak olmayan simgelerde arka plan kullanılmalıdır:

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

Temayı belirtin

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

<manifest>
    <application android:theme="@style/Theme.App.Starting">
       <!-- or -->
       <activity android:theme="@style/Theme.App.Starting">
          <!-- ... -->
</manifest>

Başlangıç etkinliğinizi güncelleme

super.onCreate() çağrısını yapmadan önce başlangıç etkinliğine açılış ekranınızı yükleyin:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        // Handle the splash screen transition.
        installSplashScreen()

        super.onCreate(savedInstanceState)
        setContent {
            WearApp("Wear OS app")
        }
    }
}

Ek kaynaklar

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