Se o app implementar uma tela de apresentação personalizada ou usar um tema de tela de início, migre-o
para a biblioteca SplashScreen
, disponível no Jetpack, para garantir que ela
seja mostrada corretamente em todas as versões do Wear OS.
Consulte as instruções detalhadas de implementação nesta página para aprender a adicionar uma
tela de apresentação usando a biblioteca SplashScreen
para que a tela atenda às
diretrizes de design.
Adicionar dependências
Adicione a dependência abaixo ao arquivo build.gradle
do módulo do app:
Groovy
dependencies { implementation "androidx.core:core-splashscreen:1.2.0-alpha02" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0-alpha02") }
Confira se você está usando a versão 1.0.1
ou mais recente para ter suporte para as dimensões
padrão do Wear OS.
Adicionar um tema
Crie um tema de tela de apresentação em res/values/styles.xml
. O elemento pai
depende da forma do ícone:
- Se o ícone for redondo, use
Theme.SplashScreen
. - Se o ícone tiver uma forma diferente, use
Theme.SplashScreen.IconBackground
.
Use windowSplashScreenBackground
para preencher o plano de fundo com uma única cor
preta. Defina os valores de postSplashScreenTheme
como o tema que a atividade
precisa usar e windowSplashScreenAnimatedIcon
como um drawable ou um
drawable animado:
<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>
Se você usar um ícone não redondo, defina uma cor branca como plano de fundo abaixo
do ícone. Nesse caso, use o Theme.SplashScreen.IconBackground
como tema
pai e defina o atributo 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>
Os outros atributos são opcionais.
Criar um drawable para o tema
Os temas de tela de apresentação exigem um drawable para transmitir
o atributo windowSplashScreenAnimatedIcon
. Por exemplo, é possível criá-lo
adicionando um novo arquivo res/drawable/splash_screen.xml
e usando o ícone na tela de início do app
e o tamanho correto do ícone da tela de apresentação:
<?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>
O tamanho desse ícone é definido em res/values/dimens.xml
e varia
se o ícone é redondo:
<?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>
…ou não redondo e, portanto, deve usar o plano de fundo do ícone:
<?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>
Especificar o tema
No arquivo de manifesto do app (AndroidManifest.xml
), substitua o tema da
atividade inicial, geralmente aqueles que definem um item da tela de início ou
exportados, para o tema criado na etapa anterior:
<manifest>
<application android:theme="@style/Theme.App.Starting">
<!-- or -->
<activity android:theme="@style/Theme.App.Starting">
<!-- ... -->
</manifest>
Atualizar a atividade inicial
Instale a tela de apresentação na atividade inicial antes de chamar
super.onCreate()
:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Handle the splash screen transition.
installSplashScreen()
super.onCreate(savedInstanceState)
setContent {
WearApp("Wear OS app")
}
}
}
Outros recursos
Saiba mais sobre telas de apresentação em geral e como elas podem ser usadas no seu app.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Migrar a implementação da tela de apresentação para o Android 12 e versões mais recentes
- Telas de apresentação
- Integrar Ações no app com widgets do Android