Je veux apporter un peu plus de lumière sur la façon actuelle de faire un Splash screen dans Flutter.
J'ai suivi un peu la trace ici et j'ai vu que les choses ne sont pas si mal en ce qui concerne le Splash Screen dans Flutter.
Peut-être que la plupart des développeurs (comme moi) pensent qu'il n'y a pas d'écran d'accueil par défaut dans Flutter et qu'ils doivent faire quelque chose à ce sujet. Il y a un écran d'accueil, mais il est sur fond blanc et personne ne peut comprendre qu'il y a déjà un écran d'accueil par défaut pour iOS et Android.
La seule chose que le développeur doit faire est de placer l'image de marque au bon endroit et l'écran d'accueil commencera à fonctionner comme ça.
Voici comment vous pouvez le faire, étape par étape :
D'abord sur Android (parce que c'est ma plateforme préférée :) )
-
Trouvez le dossier "Android" dans votre projet Flutter.
-
Allez dans le dossier app -> src -> main -> res et placez toutes les variantes de votre image de marque dans les dossiers correspondants. Par exemple :
- l'image avec la densité 1 doit être placée dans mipmap-mdpi,
- l'image avec une densité de 1,5 doit être placée dans mipmap-hdpi,
- l'image avec la densité 2 doit être placée dans mipmap-xhdpi,
- l'image avec la densité 3 doit être placée dans mipmap-xxhdpi,
- l'image avec la densité 4 doit être placée dans mipmap-xxxhdpi,
Par défaut, dans le dossier Android, il n'y a pas de drawable-mdpi, drawable-hdpi, etc., mais nous pouvons les créer si nous le souhaitons. De ce fait, les images doivent être placées dans les dossiers mipmap. De plus, le code XML par défaut concernant le Splash screen (dans Android) va utiliser @mipmap, au lieu de @drawable resource (vous pouvez le changer si vous le souhaitez).
-
La dernière étape sur Android est de décommenter une partie du code XML dans le fichier drawable/launch_background.xml. Allez dans app -> src -> main -> res-> drawable et ouvrez launch_background.xml. Dans ce fichier, vous verrez pourquoi l'arrière-plan de l'écran Slash est blanc. Pour appliquer l'image de marque que nous avons placée à l'étape 2, nous devons décommenter une partie du code XML dans votre fichier launch_background.xml. Après la modification, le code devrait ressembler à ceci :
<!--<item android:drawable="@android:color/white" />-->
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/your_image_name" />
</item>
Veuillez noter que nous commentons le code XML pour le fond blanc et décommentons le code pour l'image mipmap. Si quelqu'un est intéressé, le fichier launch_background.xml est utilisé dans le fichier styles.xml.
Deuxième sur iOS :
-
Trouvez le dossier "ios" dans votre projet Flutter.
-
Allez dans Runner -> Assets.xcassets -> LaunchImage.imageset. Il devrait y avoir LaunchImage.png, LaunchImage@2x.png, etc. Vous devez maintenant remplacer ces images par les variantes de votre image de marque. Par exemple :
- l'image avec la densité 1 doit remplacer LaunchImage.png,
- l'image avec la densité 2 doit primer sur LaunchImage@2x.png,
- l'image avec la densité 3 doit primer sur LaunchImage@3x.png,
- l'image avec la densité 4 doit primer sur LaunchImage@4x.png,
Si je ne me trompe pas, LaunchImage@4x.png n'existe pas par défaut, mais vous pouvez facilement en créer un. Si LaunchImage@4x.png n'existe pas, vous devez le déclarer dans le fichier Contents.json également, qui se trouve dans le même répertoire que les images. Après la modification, mon fichier Contents.json ressemble à ceci :
{
"images" : [
{
"idiom" : "universal",
"filename" : "LaunchImage.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@3x.png",
"scale" : "3x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@4x.png",
"scale" : "4x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Cela devrait être tout ce dont vous avez besoin, la prochaine fois que vous lancerez votre application, sur Android ou iOS, vous devriez avoir le bon Splash Screen avec l'image de marque que vous avez ajoutée.
Merci
2 votes
Je ne sais pas si c'est la bonne façon d'ajouter un écran d'accueil en définissant une minuterie personnalisée, je n'aime pas laisser les processeurs inactifs, pourquoi ne pas faire quelques tâches domestiques comme vérifier les fichiers ou les répertoires requis ou synchroniser certains journaux, ou sauvegarder certains fichiers en arrière-plan et faire le marquage à l'avant pendant ce temps. Après tout, 3-4 secondes est beaucoup de temps pour un processeur.
2 votes
Ce lien explique comment procéder : flutter.dev/docs/development/ui/splash-screen/
0 votes
Voir aussi Écrans de démarrage pour les modes sombre et clair dans Flutter