افزودن صفحه اسپلش

اگر برنامه‌تان صفحه اسپلش سفارشی پیاده‌سازی می‌کند یا از زمینه راه‌انداز استفاده می‌کند، برنامه‌تان را به کتابخانه SplashScreen که در Jetpack دردسترس است منتقل کنید تا مطمئن شوید در همه نسخه‌های Wear OS به‌درستی نمایش داده می‌شود.

برای آشنایی با نحوه افزودن صفحه اسپلش بااستفاده از کتابخانه SplashScreen به‌گونه‌ای که صفحه با رهنمودهای طراحی مطابقت داشته باشد، دستورالعمل‌های گام‌به‌گام پیاده‌سازی را در این صفحه ببینید.

افزودن وابستگی‌ها

وابستگی زیر را به فایل build.gradle واحد برنامه‌تان اضافه کنید:

شیک

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

کاتلین

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 را روی یک drawable یا animated drawable تنظیم کنید:

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

مشخصه‌های دیگر اختیاری است.

ایجاد کردن drawable برای زمینه

زمینه صفحه اسپلش به یک ترسیمی نیاز دارد تا به مشخصه 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()
        }
    }
}

منابع بیشتر

درباره صفحه‌های اسپلش به‌طور کلی و نحوه استفاده از آن‌ها در برنامه‌تان بیشتر بدانید.