Vous pensez peut-être que cette question est une copie de this one. Mais depuis lors, Android Studio a été mis à jour et la solution proposée ne fonctionne plus.
J'essaie de définir le logo de mon application à l'aide d'un élément d'image dans Android studio. En effet, si je mets mon logo directement dans drawable ou mipmap, cela pose de nombreux problèmes, tels que: Si sa taille est En cas de blocage important de l'application, si le périphérique fonctionne sur oreo, le logo n'apparaîtra pas et le paramètre par défaut ic_launcher s'affiche, etc.
Tout en essayant de définir le logo de mon application à l'aide d'une image, je suis confronté à un problème: je ne peux pas garder l'arrière-plan du logo de l'application transparent.
J'ai un logo png créé dans photoshop et je souhaite le définir comme logo de mon application. Je ne souhaite pas d'arrière-plan, mais Android). Les ressources d'image de studio ne fournissent aucune option permettant de supprimer l'arrière-plan. J'ai essayé les solutions suivantes de google:
mais rien de tout cela n'a fonctionné pour moi.
Aucune de ces œuvres ... aidez-moi s'il vous plaît. Toute aide serait appréciée.
Android 8.0 Oreo (API niveau 26) introduit icônes de lanceur adaptatif , composé de deux couches: un avant-plan et un arrière-plan. Les directives de conception des matériaux indiquent que le calque d'arrière-plan doit être opaque dans Android O et au-delà, comme vous pouvez le voir en bas. de la citation suivante. Ainsi, l’icône du lanceur adaptatif pour Android 8.0 ou version supérieure doit avoir une couleur de fond opaque au moins, si targetSdkVersion de votre application est égale ou supérieure à 26.
https://material.io/guidelines/style/icons.html#icons-icons-for-Android
Icônes pour Android
Android O et au-delà
Les icônes Android O représentent votre application sur les écrans d'accueil et toutes les applications d'un appareil. Les instructions suivantes décrivent comment les icônes peuvent recevoir des traitements, animations et comportements visuels uniques.
...
Spécifications de la couche
Les icônes sont constituées de deux couches: un premier plan et un arrière-plan. Chaque couche peut animer et recevoir des traitements indépendamment de l'autre couche.
Premier plan (parallaxe défilante)
- 108 x 108 dp
- Section masquée de 72dp
- Transparence recommandée (facultatif)
Fond (parallaxe subtile)
- 108 X 108 dp
- Section masquée de 72dp
- Doit être opaque
Bien que les icônes de lanceur de version 8.0 ou supérieure doivent avoir une couleur de fond opaque, les autres icônes de lanceur héritées de 7.1 ou moins peuvent revenir à la couleur d'arrière-plan transparente, si vous pouvez omettre icônes de lancement rond de votre application.
shape
sur none
, leur couleur d'arrière-plan sera transparente.res/mipmap/ic_laucher_round
dans la fenêtre du projet.Android:roundIcon="@mipmap/ic_launcher_round"
de l'élément application
.Dans le volet de gauche ci-dessus, les fichiers XML suivants définissent des icônes de lanceur adaptatif pour Android 8.0 ou supérieur.
Comme on le voit dans le volet de droite, ils font référence aux fichiers XML dessinables suivants.
Dans Android 8.0 ou supérieur, la couleur d'arrière-plan des icônes du lanceur peut être transparente, comme indiqué dans les captures d'écran Android 8.1 (Nexus 5X). L'application exemple " NoAdaptive "ne contient aucune ressource pour les icônes du programme de lancement adaptatif du dossier mipmap-anydpi-v26
, et l'autre application "Adaptive" a la ressource.
Bien que la couleur d’arrière-plan de l’icône du lanceur puisse être transparente dans Android 8.0 ou supérieur, cela dépend de l’application de lancement de l’utilisateur. Certaines applications de lanceur convertissent l’icône héritée en icône adaptative opaque.
L'application de lancement par défaut est Google Now Launcher , d'après son nom de package com.google.Android.launcher
. La couleur de fond peut être transparente, comme dans les captures d'écran de la mise à jour 1.
L'application de lancement par défaut est Pixel Launcher , en fonction du nom de son package com.google.Android.apps.nexuslauncher
. La couleur de fond peut être transparente dans Récents écran, comme dans les captures d'écran ci-dessous:
Ces applications GMS sont des sources fermées:
com.google.Android.launcher
_ Google Now Launcher com.google.Android.apps.nexuslauncher
Pixel Launcher En revanche, applications AOSP sont open-source. La plupart des applications de lanceur dans Android sont basées sur le code source des applications de lanceur suivantes:
com.Android.launcher
com.Android.launcher2
com.Android.launcher3
Dans la branche git version d'origine de Launcher3, LauncherIcons.Java a la méthode wrapToAdaptiveIconDrawable
qui enveloppe l'icône de lanceur héritée dans l'icône du lanceur adaptatif.
/**
* If the platform is running O but the app is not providing AdaptiveIconDrawable, then
* shrink the legacy icon and set it as foreground. Use color drawable as background to
* create AdaptiveIconDrawable.
*/
static Drawable wrapToAdaptiveIconDrawable(Context context, Drawable drawable, float scale) {
if (!(FeatureFlags.LEGACY_ICON_TREATMENT && Utilities.isAtLeastO())) {
return drawable;
}
try {
if (!(drawable instanceof AdaptiveIconDrawable)) {
AdaptiveIconDrawable iconWrapper = (AdaptiveIconDrawable)
context.getDrawable(R.drawable.adaptive_icon_drawable_wrapper).mutate();
FixedScaleDrawable fsd = ((FixedScaleDrawable) iconWrapper.getForeground());
fsd.setDrawable(drawable);
fsd.setScale(scale);
return (Drawable) iconWrapper;
}
} catch (Exception e) {
return drawable;
}
return drawable;
}
Le drapeau FeatureFlags.LEGACY_ICON_TREATMENT
est défini dans FeatureFlags.Java :
// When enabled, icons not supporting {@link AdaptiveIconDrawable} will be wrapped in this class.
public static final boolean LEGACY_ICON_TREATMENT = true;
Ainsi, la couleur de fond de l'icône de lanceur héritée dépend de cet indicateur et peut être opaque dans certaines applications de lanceur, telles que Pixel Launcher.
Si l'indicateur est défini sur true
, une nouvelle icône de lanceur adaptatif est créée avec R.drawable.adaptive_icon_drawable_wrapper
et l’icône existante devient son calque de premier plan. Le calque d'arrière-plan est un dessinable: @color/legacy_icon_background
, selon le fichier XML de la ressource :
<adaptive-icon xmlns:Android="http://schemas.Android.com/apk/res/Android">
<background Android:drawable="@color/legacy_icon_background"/>
<foreground>
<com.Android.launcher3.graphics.FixedScaleDrawable />
</foreground>
</adaptive-icon>
La couleur legacy_icon_background
est défini dans colors.xml
<color name="legacy_icon_background">#FFFFFF</color>
Ainsi, la couleur de fond devient blanche.
Dans Android 5.0, une icône avait toujours un arrière-plan opaque jusqu'à ce que je crée un fichier transparent.
Launcher Icons (Adaptive and Legacy)
dans Icon Type
.Image
dans Asset Type
Et sélectionnez votre image dans le champ Path
(onglet Foreground Layer
).ic_launcher-web.png
).Background Layer
, Sélectionnez Image
dans Asset Type
Et chargez l'arrière-plan transparent à l'étape 4.Legacy
, sélectionnez Yes
pour tout Generate
, None
pour Shape
.Foreground Layer
Et Background Layer
, Vous pouvez modifier la taille du rognage.Bien que vous voyiez un arrière-plan noir derrière l'image dans la fenêtre Preview
, après avoir appuyé sur Next
, Finish
et compilé une application, vous verrez apparaître un arrière-plan transparent dans Android 5, Android 8.
Ici est l'image transparente:
Essayez de cette façon qui a fonctionné pour moi:
Tout d’abord, créez une icône de lanceur (Adaptive and Legacy)
depuis Image Asset: sélectionnez un image
pour le calque d'arrière-plan et redimensionnez-le à 0% ou 1%, puis définissez le jeu d'onglets hérité shape
à none
.
Supprimer le dossier res/mipmap/ic_laucher_round
dans la fenêtre du projet et ouvrez AndroidManifest.xml et supprimez l’attribut Android:roundIcon="@mipmap/ic_launcher_round"
de l'élément application
.
Effacer ic_launcher.xml
de mipmap-anydpi-v26
.
Remarque: certains appareils, tels que Nexus 5X (Android 8.1), ajoutent automatiquement un fond blanc et ne peuvent rien faire.
Si je ne vous ai pas mal compris, vous avez un fichier png contenant 512x512 px à partir d'un fichier Photoshop et vous souhaitez en faire un logo pour tous les dossiers nécessaires (mipmap-xxxhdpi à mipmap-mdpi).
Vous pouvez également l'utiliser après avoir créé une icône à l'aide de Android Studio également. Je préfère créer mes icônes à l'aide de Photoshop.
J'utilise ce site après avoir créé une icône de 512x512px avec Photoshop. Vous pouvez avoir des icônes non seulement pour Android ainsi que pour les applications iPhone et bien plus encore. Gratuitement. Les icônes sont correctement dimensionnées, nommées et placées dans des dossiers mipmap sous Android = dossier du fichier Zip. Vous venez de décompresser le fichier après le téléchargement, le copier/coller.J'ai créé 50 icônes au moins et je n'ai jamais eu de problème.