Pantalla de inicio Android

La mayoría de las aplicaciones en Android, al abrirlas, tienen una simple pantalla donde muestran el logo de la compañía desarrolladora, el nombre de la app y quizás algún sonido corto. No hacen nada más que eso y duran algunos instantes. Aquí les muestro como implementar su propia splash creen.

 

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

    // thread for displaying the SplashScreen
    Thread splashTread = new Thread() {
        @Override
        public void run() {
            try {
                int waited = 0;
                while(_active && (waited < _splashTime)) {
                    sleep(100);
                    if(_active) {
                        waited += 100;
                    }
                }
            } catch(InterruptedException e) {
                // do nothing
            } finally {
                finish();
                startActivity(new Intent()); // aqui ira su pantalla de inicio
                stop();
            }
        }
    };
    splashTread.start();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        _active = false;
    }
    return true;
}

Lo que hace este código es crear un hilo que dura el tiempo que queramos, en este caso 100 milisegundos y cuando finaliza dicho tiempo es lanzar la actividad que nosotros queramos. Acuérdensen que tiene que crear el layout splash (con los que ustedes quieran pero tiene que ser simple y claro) y además tienen que declarar esta clase en su manifiesto como siempre lo hacemos.

Cualquier duda no dejen de escribir un comentario en esta entrada. Muchas gracias!

[FIXED]

Gracias a un comentario me di cuenta que no puse la declaracion de las variables _active y -splashTime. Ambas deben declararse como globales

public class SplashScreen extends Activity
{
    protected boolean _active = true;
    protected int _splashTime = 2000;
    ...
}

Deja un comentario

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