یک صفحه نمایش اسپلش اضافه کنید

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

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

وابستگی‌ها را اضافه کنید

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

شیار

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

کاتلین

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

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

اضافه کردن تم

یک تم صفحه شروع (splash screen) در res/values/styles.xml ایجاد کنید. عنصر والد به شکل آیکون بستگی دارد:

  • اگر آیکون گرد است، از Theme.SplashScreen استفاده کنید.
  • اگر آیکون شکل متفاوتی دارد، از Theme.SplashScreen.IconBackground استفاده کنید.

windowSplashScreenBackground برای پر کردن پس‌زمینه با یک رنگ مشکی استفاده کنید. مقادیر postSplashScreenTheme را روی تمی که Activity باید از آن استفاده کند و 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.IconBackground">
    ...
    <!-- Set a white background behind the splash screen icon. -->
    <item name="windowSplashScreenIconBackgroundColor">@android:color/white</item>
</style>

بقیه ویژگی‌ها اختیاری هستند.

یک فایل قابل ترسیم برای تم ایجاد کنید

تم‌های صفحه شروع (Splash screen) برای ارسال به ویژگی windowSplashScreenAnimatedIcon به یک drawable نیاز دارند. برای مثال، می‌توانید آن را با اضافه کردن یک فایل جدید res/drawable/splash_screen.xml و استفاده از آیکون لانچر برنامه و اندازه صحیح آیکون صفحه شروع ایجاد کنید:

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

اندازه آیکون صفحه شروع در res/values/dimens.xml تعریف شده است و بسته به اینکه آیکون گرد باشد یا خیر، متفاوت است:

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

... یا غیر گرد باشد و بنابراین باید از پس‌زمینه آیکون استفاده کند:

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

تم را مشخص کنید

در فایل مانیفست برنامه‌تان ( AndroidManifest.xml )، تم اکتیویتی آغازین -- معمولاً آن‌هایی که یک آیتم لانچر را تعریف می‌کنند یا به هر نحوی اکسپورت می‌شوند -- را با تمی که در مرحله قبل ایجاد کردید، جایگزین کنید:

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

فعالیت اولیه خود را به‌روزرسانی کنید

قبل از فراخوانی super.onCreate() صفحه شروع خود را در activity شروع نصب کنید:

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

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

منابع اضافی

درباره صفحات شروع (splash screens) به طور کلی و نحوه استفاده از آنها در برنامه خود بیشتر بدانید .

{% کلمه به کلمه %} {% فعل کمکی %} {% کلمه به کلمه %} {% فعل کمکی %}