إضافة شاشة بداية

إذا كان تطبيقك يستخدم شاشة بداية مخصّصة أو مظهر مشغّل تطبيقات، عليك نقل تطبيقك إلى مكتبة SplashScreen المتوفّرة في Jetpack لضمان عرضه بشكل صحيح على جميع إصدارات Wear OS.

يمكنك الاطّلاع على تعليمات التنفيذ المفصّلة في هذه الصفحة لمعرفة كيفية إضافة شاشة بداية باستخدام مكتبة SplashScreen بحيث تستوفي الشاشة إرشادات التصميم.

إضافة التبعيات

أضِف التبعية التالية إلى ملف build.gradle الخاص بوحدة تطبيقك:

Groovy

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

Kotlin

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

تأكَّد من استخدام الإصدار 1.0.1 أو إصدار أحدث للحصول على دعم لأبعاد Wear OS التلقائية.

إضافة مظهر

أنشئ مظهرًا لشاشة البداية في res/values/styles.xml. يعتمد العنصر الرئيسي على شكل الرمز:

  • إذا كان الرمز دائريًا، استخدِم Theme.SplashScreen.
  • إذا كان الرمز بشكل مختلف، استخدِم Theme.SplashScreen.IconBackground.

استخدِم windowSplashScreenBackground لملء الخلفية بلون أسود واحد. اضبط قيم postSplashScreenTheme على المظهر الذي يجب أن يستخدمه النشاط وwindowSplashScreenAnimatedIcon على عنصر قابل للرسم أو عنصر قابل للرسم متحرك:

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

إذا كنت تستخدم رمزًا غير دائري، عليك ضبط لون خلفية أبيض تحت الرمز. في هذه الحالة، استخدِم Theme.SplashScreen.IconBackground كمظهر رئيسي واضبط السمة windowSplashScreenIconBackgroundColor:

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

أما السمات الأخرى، فهي اختيارية.

إنشاء عنصر قابل للرسم للمظهر

تتطلّب مظاهر شاشة البداية تمرير عنصر قابل للرسم إلى السمة windowSplashScreenAnimatedIcon. على سبيل المثال، يمكنك إنشاؤه من خلال إضافة ملف جديد res/drawable/splash_screen.xml واستخدام رمز مشغّل التطبيقات وحجم رمز شاشة البداية الصحيح:

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

يتم تحديد حجم رمز شاشة البداية في res/values/dimens.xml ويختلف حسب ما إذا كان الرمز مستديرًا:

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

...أو غير دائرية، وبالتالي يجب استخدام خلفية الرمز:

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

تحديد المظهر

في ملف بيان تطبيقك (AndroidManifest.xml)، استبدِل مظهر النشاط الأولي، وهو عادةً النشاط الذي يحدّد عنصر مشغّل التطبيقات أو يتم تصديره بطريقة أخرى، بالمظهر الذي أنشأته في الخطوة السابقة:

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

تعديل النشاط الأولي

ثبِّت شاشة البداية في النشاط الأوّلي قبل استدعاء super.onCreate() وتحميل الدالة المركّبة:

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

        setContent {
            WearApp()
        }
    }
}

مراجع إضافية

مزيد من المعلومات حول شاشات البداية بشكل عام وكيفية استخدامها في تطبيقك