Añadir Splash Screen a una aplicación Android

Muchas aplicaciones de Android, al igual que de otros sistemas operativos e incluso de otras plataformas como el PC, muestran antes de cargar la aplicación en sí una pantalla con el logotipo o el título de la aplicación y a veces incluso alguna información básica sobre la misma (autor, compañía, año, etc.). A esta pantalla se le suele dar el nombre de Splash Screen o pantalla de bienvenida.

Es cierto que según algunas corrientes, puede estar en desuso debido a que sobretodo en las aplicaciones móviles el usuario busca rapidez en la respuesta y, por tanto, no perder el tiempo mostrando una splash screen en un dispositivo Android. Sin embargo, puede ser útil en algunas ocasiones. Se suele utilizar mucho cuando la aplicación en cuestión tiene que cargar datos al iniciarse y este proceso tarda un tiempo apreciable, de al menos algún segundo. En estos casos se suele preferir mostrar un pantalla de bienvenida para que el usuario vea que se está arrancando la aplicación y que el móvil o la tableta no se ha quedado colgada.

Hay incluso diseñadores que ponen alguna animación en la splash screen para mejorar la experiencia del usuario si el proceso de carga se demora bastantes segundos.

Un ejemplo de implementación de Splash Screen Android sería el siguiente, donde:

  • La constante DURACION_SPLASH es el tiempo en milisegundos durante los cuales la pantalla de bienvenida estará visible. En este ejemplo, 3000 = 3 segundos.
  • R.layout.splashscreen es el layout de la pantalla de bienvenida, diseñada en el xml correspondiente.
  • MainActivity es la actividad principal de la aplicación Android que se va a ejecutar. Será la que se muestre una vez la Splash Screen se oculte.
<pre>import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends Activity {
  private final int DURACION_SPLASH = 3000;
  @Override
  public void onCreate(Bundle b) {
     super.onCreate(b);
		
     // R.layout.splashscreen se corresponde con la pantalla de bienvenida
     setContentView(R.layout.splashscreen);

     new Handler().postDelayed(new Runnable(){
        @Override
        public void run() {		
	  // Se inicia la actividad principal de la aplicación
          Intent intentPrincipal = new Intent(Splash.this,MainActivity.class);
          this.startActivity(intentPrincipal);
          this.finish();
        }
     }, DURACION_SPLASH);
  }
}</pre>

Importante, no olvidar que la actividad Splash Screen debe estar declarada en el Manifest como la actividad que se ejecuta al lanzar la aplicación, sino seguirá arrancando la actividad principal y no aparecerá la pantalla de bienvenida.

<pre> <activity
   android:name=".MainActivity"
   android:label="@string/app_name" >
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />

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

Deja un comentario

Pin It on Pinterest