sábado, 2 de junio de 2012

Custom Splash

Android por defecto no añade a sus proyectos una vista de Splash dónde se inicie la aplicación. No obstante, mediante Thread tenemos la posibilidad de implementar nuestra propia vista de Splash. Para ello podemos crear Activity siguiente:

public class Splash extends Activity {

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

        try {
            Thread splashThread = new Thread() {
                @Override
                public void run() {
                    try {
                        int waited = 0;
                        while (waited < 800) {
                            sleep(80);
                            waited += 100;
                        }
                        // perquè aixi quan premin back no apareixi aquesta
                        // vista
                        finish();
                        Intent intent = new Intent(Splash.this,
                                ClassToGo.class);
                        startActivity(intent);
                    } catch (InterruptedException e) {
                    }
                }
            };
            splashThread.start();
        } catch (Exception e) {
        }

    }
}

A continuación añadimos en la carpeta de res/layout/splash.xml:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white">

    <ImageView
        android:id="@+id/splash"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

Y ya tenemos nuestra propia vista splash. Obviamente, se puede variar el formato y aprovechar el Splash para cargar la información de los webservices. Esta funcionalidad ya depende de cada uno!


It works!


Roger Sala



No hay comentarios:

Publicar un comentario