Nous allons débuter l’application par un écran de présentation, splash-screen comme cela est appelé. Cet écran nous permettra par la suite de pré-charger un certain nombre de ressources utilisées dans la suite de l’application. De plus cet écran de présentation ne réapparaitra pas lorsque vous cliquerez sur le bouton précédent, cela quittera simplement l’application sans réafficher cet écran.

Donc nous allons afficher une image pendant quelques instants avant d’afficher le menu principal du jeu.

Nous allons reprendre le tutorial de barebonescoder à l’adresse http://www.barebonescoder.com/2010/04/a-simple-android-splash-screen/ ) .

Nous allons commencer par créer le fichier splashscreen.xml qui décrira ce qui devra être affiché sur notre écran. Pour cela, sur l’item layout de notre projet, avec le bouton droit, nous faisons new/file pour ajouter le fichier XML que nous nommons splashscreen.xml. Dans ce fichier, nous ajoutons le code suivant :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_horizontal|center_vertical"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/spacoid">
<TextView
android:layout_height="wrap_content"
android:text="LOADING"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</LinearLayout>

Avec ce code, nous ajoutons donc un LinearLayout dans lequel nous positionnons en fond d’écran ( background ) notre image de présentation "@drawable/spacoid".

Nous allons mettre à jour le fichier AndroidManifest, afin de définir correctement l’écran de notre application

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.jeux.splashscreen"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:label="@string/app_name"
		android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
		android:screenOrientation="portrait"
		android:name="SplahScreenActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

Au passage, avec les lignes suivantes :

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="portrait"

Nous forçons l’affichage en mode portrait, ainsi que l’affichage en plein écran en supprimant la barre d’état en haut de l’écran.

Il ne reste plus qu’à ajouter le code permettant l’affichage de cet écran de présentation avec le code suivant :

package com.jeux.splashscreen;

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

public class SplahScreenActivity  extends Activity
{
	/** Called when the activity is first created. */
	@Override
	public void onCreate( Bundle savedInstanceState )
	{
		// Must be first instruction of onCreate.
		super.onCreate( savedInstanceState );
		// Show Splash screen.
		setContentView( R.layout.splashscreen );
		// Create and run thread.
		Thread splashThread = new Thread()
		{
			@Override
			public void run()
			{
				try
				{
					int waited = 0;

					while( waited < 5000 )
					{
						sleep( 50 );
						waited += 100;
					}
				}
				catch( InterruptedException e )
				{
					e.printStackTrace();
				}
				finally
				{
					finish();
				}
			}
		};
		splashThread.start();
	}
}

Après exécution, nous obtenons l’affichage suivant, pendant quelques secondes, puis l’application se termine :

01_-_SplashScreen.jpg

Télécharger l'archive.