Ключевые слова: заставка
Если ваше приложение реализует настраиваемый экран-заставку или использует тему запуска, перенесите свое приложение в библиотеку SplashScreen
, доступную в Jetpack, чтобы обеспечить его правильное отображение во всех версиях Wear OS.
См. пошаговые инструкции по реализации на этой странице, чтобы узнать, как добавить заставку с помощью библиотеки SplashScreen
чтобы экран соответствовал рекомендациям по проектированию .
Добавить зависимости
Добавьте следующую зависимость в файл build.gradle
вашего модуля приложения:
классный
dependencies { implementation "androidx.core:core-splashscreen:1.2.0-alpha02" }
Котлин
dependencies { implementation("androidx.core:core-splashscreen:1.2.0-alpha02") }
Убедитесь, что вы используете версию 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.IconBackground">
...
<!-- Set a white background behind the splash screen icon. -->
<item name="windowSplashScreenIconBackgroundColor">@android:color/white</item>
</style>
Остальные атрибуты являются необязательными.
Создайте рисунок для темы
Темы экрана-заставки требуют, чтобы объект рисования был передан в атрибут windowSplashScreenAnimatedIcon
. Например, вы можете создать его, добавив новый файл 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()
:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Handle the splash screen transition.
installSplashScreen()
super.onCreate(savedInstanceState)
setContent {
WearApp("Wear OS app")
}
}
}
Дополнительные ресурсы
Узнайте больше о заставках в целом и о том, как их можно использовать в своем приложении.
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Перенесите реализацию заставки на Android 12 и более поздние версии.
- Заставки
- Интегрируйте действия приложения с виджетами Android.