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

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 le 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>

<?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

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 !

  • Leave a Comment

Obtenez plus d'articles

Abonnez-vous à notre liste d’e-mailing et obtenez des astuces intéressantes et les mises à jour dans votre boîte e-mail.

Merci pour votre abonnement.

Quelque chose s’est mal passé.