Splash screen para Android

  1 mins read

En Android no tenemos tan fácil la opción de poner una actividad en el arranque que dure X tiempo, una Splash Screen para mostrar el logotipo de nuestra empresa, grupo de desarrollo etc… Por eso mismo he decidido crear esta Activity con la finalidad de que en todos nuestros proyectos dediquemos el mínimo tiempo en este proceso ya que solo hay que configurar 3 parámetros.

Configurando la actividad

Para bajarnos en código fuente solo tenemos que acceder a GitHub haciendo clic en este enlace, copiarnos el código fuente y meter el SplashActivity en nuestro proyecto Android. Añadir lo siguiente a nuestro AndroidManifest.xml:


 
   
   
   
    
       
           
               
               
           
       
 

Los únicos parámetros a configurar son:

  • INVOKE_LATER_ACTIVITY: La Activity a lanzar después de la Splash.
  • MILLISECONDS_SPLASH_TIME: El tiempo en milisegundos que queremos mostrar nuestra pantalla.
  • SPLASH_IMAGE: El nombre del drawable de nuestro proyecto Android que queremos usar de fondo de Splash.

Obviamente tendremos que quitar el intent-filter de nuestra MainActivity para dejar como Main Activity nuestra Splash.

Written by:

Christian Panadero Martinez

  • jonathan

    aaddddddddd

  • Angel

    Una pregunta, y de antemano disculpa por si digo alguna tontería, ya que estoy empezando con el desarrollo de Android.

    Actualmente me encuentro desarrollando una aplicación bastante simple sobre Android 4. Deseaba hacer un Splash Screen de inicio, y siguiendo tus pasos todo perfecto, pero al iniciar la aplicación se muestra correctamente el Splash pero al proceder a la aplicación original, la aplicación se cierra.

    La pregunta es: este método funciona correctamente sobre Android 4? Porque creo que existe algún método deprecated.

    Gracias de antemano por la respuesta. Saludos!

  • Buenas Angel,

    Para poder ayudarte, por favor, copiame la traza de tu error y enseñanos tu manifest.

    Saludos.

  • Angel

    Gracias por la rápida respuesta. Después de haberte escrito he decidido crear un nuevo proyecto, solo para intentar que funcionase correctamente, y esta vez lo he creado para Android 2.3.3.

    Cual es la desgracia, que tampoco me funciona, así que el problema lo tengo que hacer yo.

    Te copio el Manifest.xml que creo que es donde esta el error.

    //———————————————————————————————–//

    //———————————————————————————————–//

    El Main activity esta simplemente por defecto, tal y como el mismo IDE te lo configura.
    //———————————————————————————————–//

    package com.editado.scs;

    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;

    public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
    }

    }
    //———————————————————————————————–//

    y por ultimo el SplashActivity es el mismo que tu proporcionaste.

    Un saludo y gracias por tu apoyo, es un detalle que desinteresadamente ayudes a la comunidad. Un saludo y gracias.

  • Angel

    Huy, por alguna razon no he copiado el Manifest, te lo copio aqui:

  • Angel

    Malditas etiquetas XML. Te la estoy liando, perdon. Como te lo paso? No soy un experto, lo siento 🙁

  • Angel, no te va a salir el manifest puesto que es un XML, copialo en una web como pastebin.com y pegame el enlace, tambien por favor el error que te da al ejecutarlo.

    Saludos!

  • Angel

    Espero que asi, si que no haya problemas:

    http://pastebin.com/13h8bBna

    Saludos!

  • Hola Angel,
    No es problema del splash sino de que no has declarado tu actividad en el Manifest. Toda actividad que crees tiene que estar definida en el manifest, añade esto: http://pastebin.com/GwvvNJ4L despues de tu activity en el Manifest. Cuando tengas un error mira las trazas, son muy utiles, de hecho mira que te lo dice bien claro:

    android.content.ActivityNotFoundException: Unable to find explicit activity class {com.editado.scs/com.editado.scs.MainActivity}; have you declared this activity in your AndroidManifest.xml?

    Saludos!

  • Angel

    Muchas gracias! Ahora si funciona!
    Antes de editar el Manifest pensaba que tenia que dejar exclusivamente tu aporte, y leía el Log y estaba claro que por ahí iban los tiros, pero claro, miraba tu manifest y no veía que tu declarases una main y claro, tonto de mi.

    Bueno, pues gracias por haberme ayudado, es difícil adentrarse en un mundo así, sin alguien que te guíe.

    Un saludo! y muchísimas gracias por tu ayuda!

  • Sin ningún problema, gracias a ti por el interés.
    Saludos!

  • salo

    Hola, buen tutorial, pero tengo una duda, como puedo hacer para que salga solo cuando se instale por primera vez app y después ya no salga el splash screen vaya directo a la actividad principal. Saludos

  • Fernando Perez

    Gracias por el aporte. Funciona correctamente.