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

اگر برنامه شما صفحه آغازین سفارشی را پیاده‌سازی می‌کند یا از زمینه راه‌انداز استفاده می‌کند، برنامه خود را به کتابخانه 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")
}

برای دریافت پشتیبانی از ابعاد پیش‌فرض Wear OS، مطمئن شوید از نسخه 1.0.1 یا بالاتر استفاده می‌کنید.

افزودن یک طرح زمینه

زمینه صفحه ورود را در 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()
        }
    }
}

منابع بیشتر

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