Programmation

La nouvelle méthode pour créer un Splash screen Android

L’idée de faire un splash screen android ou de mettre un écran de de démarrage dans son application n’est pas si bête, mais ça nous met un peu parfois en colère. Juste dire, la phrase me fait grincer des dents. Les écrans de démarrage ne font que perdre notre temps, n’est-ce-pas? En tant que développeur Android, lorsque je vois un écran de démarrage, je sais que le développeur a dû ajouter un délai de trois ou cinq secondes dans son code.

Qu’est qui est devenu le Splash Screen Android

Auparavant on utilisait un Runnable avec un délai fixe à un l’écran de démarrage ou l’écran de lancement d’une application de s’exécuter, pendant environ deux ou cinq secondes que l’utilisateur sera obligé de patienter pendant qu’il ne se passe aucun chargement.

Après une recherche, j’ai trouvé beaucoup de tutoriels sur les implémentations d’écrans de démarrage, parmi eux, certains développeurs ajoutent généralement un Runnable avec un délai fixe comme délai pour le résoudre. Cette solution n’est pas aujourd’hui une option pour moi, car je ne vais pas forcer les utilisateurs de mes applications à attendre qu’il n’y ait rien à charger. Découvrons une nouvelle excellente solution avec des modifications minimales qui montre l’écran de démarrage pendant le chargement de l’application.

Le code pour implementert un splash screen Android

Tout d’abord, nous devons concevoir la disposition de l’écran de démarrage en tant que drawable. J’ai utilisé le ic_launcher (logo de mon application) comme bitmap central et le colorPrimary (la couleur primaire) comme arrière-plan comme dans l’exemple qui suit :

l’exemple du fichier splash.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">
    <item android:drawable="@color/colorPrimary"/>
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_launcher"/>
    </item>
</layer-list>

J’ai ensuite créé un thème SplashTheme que j’ai appliqué dans l’attribut thème de mon fichier AndroidManifest.xml

<resources>
  </activity>
        <activity
            android:name=".SplashActivity"
            android:theme="@style/AppTheme.SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</resources>

Et maintenant, on devoir définir un thème avec la valeur windowBackground et inserer notre fichier splash précédemment créé dans windowBackground

<resources>
  <style name="SplashTheme" parent="AppTheme">
    <item name="android:windowBackground">@drawable/splash</item>
  </style>
</resources>

Un simple Splash screen in Android

Au final, voici notre classe SplashActivity.java, sans le Runnable

public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, laClassQuiSuit.class);
        startActivity(intent);
        finish();
    }
}

Avec cette approche, l’écran de démarrage est affiché lors de l’initialisation de l’application lorsque cela est utile, sinon l’application passe directement par la classe MainActivity.pour afficher l’écran principal de l’application.

Merci de prendre votre à lire ce tutoriel !

 

A propos de l'auteur

depezo

Amoureux et passionné du code, Développeur mobile Android et Web. Partager mon expérience avec vous, c'est ça mon plus grand désir. Pour plus d'infos sur moi, trouvez-moi sur les réseaux ci-dessous

2 commentaires

Cliquer pour laisser un commentaire

Laisser un commentaire

Sponsorisées

Voir aussi

%d blogueurs aiment cette page :