Implementar un Splash Screen en Android

Implementar un Splash Screen en Android

En ésta ocasión veremos cómo implementar un Splash Screen en Android. Un Splash Screen (o pantalla de Bienvenida) consiste en una pantalla que muestra algunos elementos gráficos, como puede ser el logotipo de la aplicación y cualquier otra información que el desarrollador considere pertinente. Por lo general aparece mientras la aplicación realiza la carga de datos o conexión a bases de datos remotas. Sin embargo, muchas empresas lo utilizan con propósitos de marca (Darwin, 2017).

Pasos para implementar un Splash Screen en Android

  1. Creación de el Splash Screen en Android

Ir a drawable->New->Drawable resource file. En el cuadro de diálogo que se abre, le asignamos un nombre al archivo, en mi caso “splash”. Aquí diseñaremos nuestro Splash Screen, que contendrá en mi caso el logotipo de la aplicación.

implementar un splash screen en android - drawable resource file

El código de éste archivo sería como el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorPrimary"/>
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/slimbody"/>
    </item>
</layer-list>

En el código anterior, se utiliza un color de fondo, y en forma centrada, se mostrará una imagen, que en mi caso se llama “slimbody” y está en la carpeta “drawable”. En tu caso, puedes usar la imagen de tu elección.

2. Creación de un estilo que utilice nuestro gráfico

Vamos a agregar un nuevo estilo. Abrimos res->values->styles.xml

Abrimos res->values->themes->themes.xml

Crearemos un nuevo estilo para la pantalla splash screen, para lo cual agregaremos las siguientes lineas:

<style name="SplashScreen" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowBackground">
            @drawable/splash
        </item>
</style>

3. Creación de un Activity para funcionalidad

Generamos un nuevo Activity sin layout: Da clic derecho en el package donde desees crear el Activity, luego  en New->Activity->Empty Activity, y asigna un nombre al activity, en mi caso se llama SplashActivity. Desactiva la casilla Generate Layout File.

implementar un splash screen en android - splashactivity

Éste archivo contendrá código para llamar al MainActivity.

public class SplashActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish(); // evitar regresar a éste activity
    }
}

4. Configuración de AndroidManifest

A continuación, vamos al AndroidManifest.xml para indicarle que el primer Activity que debe cargar el el SplashScreen.

Abre AndroidManifest.xml. Verás que uno de los <activity> tiene las siguientes líneas:

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

Se las quitamos y se las ponemos al <activity> con name=”.Activities.SplashActivity”

Vamos a agregar el estilo que creamos. Agrega tambien la siguiente línea a ese mismo <activity>

android:theme="@style/SplashScreen">

En mi caso quedó así:

       <activity
            android:name=".Activities.SplashActivity"
            android:theme="@style/SplashScreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

Si en éste momento corremos la aplicación, veremos que el Splash Screen es el primero que se ejecuta.

implementar un splash screen en android - ejecucion

Y enseguida abre el MainActivity.

5. Realizar un retardo obligado de 4 segundos

Si nuestra aplicación al iniciar tuviera que realizar un acceso a base de datos o peticiones a internet, el Splash Screen se mostraría durante la cantidad de tiempo que la app estuviese cargando. Éstas operaciones estarían en una clase que sobreescribe a Application.  Si deseáramos que el Splash Screen esté una cantidad t de tiempo, podríamos también indicárselo en esa clase que sobreescribe a Application.

Da clic derecho en el package donde desees crear la clase, luego en New->Java Class. Asígnale un nombre a la clase, por ejemplo, MyApp.

implementar un splash screen en android - MyApp

En el caso de que deseáramos hacer un retardo de unos 4 segundos, el código de ésta clase se vería así:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        SystemClock.sleep(4000);
    }
}

En el AndroidManifest debemos indicarle que use esa clase que acabamos de crear.

Bajo la línea <application escribe:

android:name=".Activities.MyApp"

Es decir, parte del AndroidManifest se vería así:

 <application
        android:name=".Activities.MyApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"

¡Listo! Espero que hayas conseguido Implementar un Splash Screen en Android. En caso de que te resulte más fácil aprender en video, puedes consultar el siguiente.

¿Qué te pareció este artículo?
  • Poco informativo 
  • No era lo que buscaba 
  • Regular 
  • Interesante 
  • Excelente 
(Visto 15.567 veces)
Facebooktwitterlinkedinmail

Tu comentario

opiniones

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *







− 1 = 7