En el presente artículo les dejo fuente de ejemplo de un Activity para SplashScreen el cual se muestra durante 1500 milisegundos y pasado ese tiempo llama a una supuesta Activity NextActivity (o bien tu siguiente Activity). Este tiempo puede ser interrumpido tocando en la pantalla.
A continuación el código fuente de la clase SplashActivity:
package com.davidg.samples;
import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
public class SplashActivity extends Activity
{
protected boolean _active = true;
protected int _splashTime = 1500; // Tiempo máximo de duración de splash (espera normal) en milisegundos.
protected int _controlTime = 100; // Tiempo de control de toque de pantalla en milisegundos.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash_activity);
Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while(_active && (waited < _splashTime)) {
sleep( _controlTime );
if(_active) {
waited += _controlTime;
}
}
} catch(InterruptedException e) {
// Capturamos la excepción de interrupción y continuamos por finally.
} finally {
startActivity( new Intent(SplashActivity.this, NextActivity.class) );
finish();
}
}
};
splashTread.start();
}
/* Detectamos si el usuario toca la pantalla e Interrumpimos la espera normal */
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
_active = false;
}
return true;
}
}
Escrito por: Leonardo David Gonzalez

No hay comentarios:
Publicar un comentario