Android Design

Splash Screen Android - O Jeito Mais Simple e Eficaz

Tiago Aguiar Desenvolvedor ios

Escrito por Tiago Aguiar

em 09/04/2021

Antes de mais nada, você precisará das imagens da splash screen nos tamanhos:

res/
  drawable-xxxhdpi/
  drawable-xxhdpi/
  drawable-xhdpi/
  drawable-hdpi/
  drawable-mdpi/

Agora, copie essas imagens para a(s) pasta(s) drawable do seu projeto.

Próximo passo é ter disponível um arquivo desenhável (drawable xml) que armazenará o fundo e o bitmap associado. Dito isto, crie um arquivo drawable para hospedar o logo chamado splash_bg.xml na pasta drawable.

Note que é a pasta principal drawable, não as demais com tamanhos específicos.

Este arquivo deve conter a tag xml raiz chamada de layer-list.

Essa tag permite que os componentes sejam adicionados em listas de camadas. Por isso o nome XD.


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
</layer-list>

O primeiro item da camada será uma cor de fundo - background.


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:drawable="@color/white" />

</layer-list>

O segundo item da camada será o bitmap do nosso logo


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:drawable="@color/white" />
  <item>
    <bitmap 
          android:gravity="center"
          android:src="@drawable/logo" />
      <!-- logo é o nome do arquivo -->
  </item>

</layer-list>

Primeira etapa concluída!

Criando um tema específico para Splash Screen

Agora precisamos avisar ao sistema android que esse drawable é um drawable do tema.

Abrindo o arquivo de temas (geralmente é themes.xml), crie um novo tema.


<style name="Theme.Splash" parent="Theme.MaterialComponents.DayNight.NoActionBar">
  <item name="android:statusBarColor">@color/white</item>
  <item name="android:windowBackground">@drawable/splash_bg</item>
</style>

Vamos analisar esse trecho de código.

  1. O tema que herdamos não possui a action bar/toolbar.
  2. alteramos a cor da status bar para branco.
  3. informamos na propriedade windowBackground que o fundo da tela deve ser um arquivo drawable.

Agora, acessando o AndroidManifest.xml, devemos alterar o tema da aplicação para o novo tema.


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="co.tiagoaguiar.codelab.splash">

    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Theme.Splash">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Definindo Activity com Splash Screen

Ao rodar o app no smartphone ou emulador, você notará que a Splash aparece mas ela não desaparece. Precisamos de uma lógica para isso.

Antes de setar o conteúdo com o setContentView(), devemos retornar para o tema principal que estava antes da splash ser criada.


class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setTheme(R.style.Theme_Main)

    setContentView(R.layout.activity_main)
  }
}

Agora, caso queira que a splash demore um pouco mais, você pode atrasar usando o Thread.sleep(1000). Isso faz com que a thread atual demore um pouco.

Como esta é a primeira Activity, não tem problema manter um timeout no início do projeto.

Me siga nas redes sociais:


Artigos Relacionados

Como Criar Aplicativos Para Tablets (Suporte a Telas Grandes)

Como Criar Aplicativos Para Tablets (Suporte A Telas Grandes)

Aprenda como criar aplicativos para tablets no Android com suporte a telas grandes para ampliar o alcance do seu ...

Como Instalar o Android Studio no Windows

Como Instalar O Android Studio No Windows

Android Studio é a ferramenta oficial desenvolvida criado pelo Google com recursos para criar aplicativos Android...

Aprender a Programar Para Android do Zero: Primeiros Passos

Aprender A Programar Para Android Do Zero: Primeiros Passos

Acredite ou não, aprender a programar aplicativos para Android é de longe uma das coisas mais divertidas que pode...

Principais Tipos de Dados em Kotlin

Principais Tipos De Dados Em Kotlin

Neste video você vai aprender os principais tipos de dados disponíveis no core da linguagem de programação Kotlin...