Creare uno splashscreen per un'applicazione Android

Androider

Nuovo Utente
29 Mar 2012
2
0
0
Vi posto un mio semplice tutorial che mi auguro possa esservi d'aiuto per aggiungere uno splashscreen all'interno di una applicazione Android.

Cos'è uno splashscreen?
Per chi non lo sapesse uno splashscreen è una schermata di presentazione che viene mostrata per alcuni secondi al caricamento dell'applicazione. Di solito è usata per inserire una sorta di copertina dell'applicazione con logo ed informazioni sullo sviluppatore.

Quello che vi posto è il codice che (cho trovato su un sito USA) di una classe splash che utilizza una ImageView per mostrare un'immagine sullo schermo (la nostra copertina, appunto) e che gestisce un handle per far scomparire l'immagine alla ricezione di un apposito messaggio. Questo il codice della nostra classe:
Codice:
package com.test.splash;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ImageView;

public class splash extends Activity {
   
   private static final int STOPSPLASH = 0;
   //time in milliseconds
   private static final long SPLASHTIME = 3000;
   
   private ImageView splash;
   
   //handler for splash screen
   private Handler splashHandler = new Handler() {
      /* (non-Javadoc)
       * @see android.os.Handler#handleMessage(android.os.Message)
       */
      @Override
      public void handleMessage(Message msg) {
         switch (msg.what) {
         case STOPSPLASH:
            //remove SplashScreen from view
            splash.setVisibility(View.GONE);
            break;
         }
         super.handleMessage(msg);
      }
   };
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
         splash = (ImageView) findViewById(R.id.splashscreen);
         Message msg = new Message();
         msg.what = STOPSPLASH;
         splashHandler.sendMessageDelayed(msg, SPLASHTIME);
    }
}

E' anche possibile chiudere automaticanete lo spashscreen dopo X secondi. In questo modo:
Codice:
splashHandler.sendMessageDelayed(msg, SPLASHTIME);
SPLASHTIME = millisecondi dopo i quali far scomparire la schermata

Lo splashscreen può essere definito nel Manifest.xml come una ImageView interna al alyout della nostra app:
Codice:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical" android:layout_width="fill_parent"
   android:layout_height="fill_parent">
   <ImageView id="@+id/splashscreen" android:layout_width="wrap_content"
      android:layout_height="fill_parent" android:src="@drawable/splash"
      android:layout_gravity="center"/>
   <TextView android:layout_width="fill_parent"
      android:layout_height="wrap_content" android:text="Hello World, splash"/>
</LinearLayout>
 

Discussioni simili