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

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 !

 

Précedent

Top 10 plugin WooCommerce gratuits pour plus de fonctionnalités

Meilleures sites pour apprendre rapidement le développement Android

Suivant

2 réflexions au sujet de “La nouvelle méthode pour créer un Splash screen Android 2019”

  1. Salut,
    l’image existe

    n’apparaît pas, tu as bien tout restauré dans ta base de données ?
    Toutes les tables ?
    La bibliothèque dans ton tableau de bord est vide ou pas ?

    Répondre
    • Merci beaucoup, la bibliothèque contient des images, elle n’est pas vide, je vais tester le site sans Cloudflare pour voir et je vais te tenir au courant…
      Merci beaucoup Jean

      Répondre

Laisser un commentaire