332 votes

Y a-t-il un moyen de créer des drawables xxhdpi, xhdpi, hdpi, mdpi et ldpi à partir d'une image à grande échelle ?

Y a-t-il un moyen de créer automatiquement des images en xxhdpi, xhdpi, hdpi, mdpi et ldpi à partir d'une image à grande échelle ? Par exemple, supposons que j'ai une image de 512x512 et que je veuille avoir différentes versions de cette image pour les différentes résolutions d'écran prises en charge par Android dans des dossiers appropriés.

243voto

CommonsWare Points 402670

Option #1: Envoyez simplement les drawables -xxhdpi et laissez Android les sous-échantillonner pour vous à l'exécution (inconvénient : ne fonctionnera que sur des appareils assez récents, où -xxhdpi est connu).

Option #2: Utilisez Android Asset Studio pour les sous-échantillonner pour vous.

Option #3: Automatisez le processus dans un éditeur graphique, selon la réponse de ssantos.

Option #4: Écrivez vous-même une solution, en utilisant quelque chose comme ImageMagick.

Option #5: Utilisez image baker

165voto

Adam Johns Points 4784

Mise à jour :

Le plugin mentionné précédemment a été abandonné, mais il semble qu'il existe une version actualisée ici.

Ancienne réponse :

J'utilise le plugin Android Studio nommé Android Drawable Importer :

entrez la description de l'image ici

Pour l'utiliser après l'avoir installé, faites un clic droit sur votre dossier res/drawable et sélectionnez Nouveau > Importation groupée de drawables :

Ensuite, sélectionnez votre image via le bouton + et définissez la résolution sur xxhdpi (ou la résolution de votre image source).

111voto

Mettre à jour:

L'ancienne méthode d'installation du plugin ne fonctionne plus mais un fork du plugin original est toujours fonctionnel ici. Vous pouvez toujours suivre cette réponse après avoir installé le plugin manuellement.

Si vous souhaitez une façon rapide et facile, visitez https://www.img-bak.in/ ou https://appicon.co/ ils fonctionnent également avec iOS.

J'essaierai d'expliquer le processus étape par étape, de manière à ce que ce soit simple à comprendre pour tout le monde.

1. Installez le plugin manuellement comme indiqué dans le ReadME

2. Redémarrez Android Studio

3. Comme vous pouvez le voir dans la capture d'écran suivante, il n'y a qu'un seul drawable ici

saisir la description de l'image ici

4. Maintenant, faites un clic droit sur le dossier drawable et allez à Nouveau>Importation de lots de drawables

saisir la description de l'image ici

8. Cliquez maintenant sur l'icône d'ajout

5. Maintenant sélectionnez "L'image unique" dont vous voulez des variations de drawables.

saisir la description de l'image ici

6. Sélectionnez maintenant la dimension de l'image d'origine. Si l'image d'origine est xxhdpi comme dans mon cas, sélectionnez "xxhdpi" comme "Résolution source".

7. Appuyez sur OK puis OK à nouveau ... et cela prendra quelques secondes, puis vous obtiendrez magiquement toutes les variantes des drawables.saisir la description de l'image ici

saisir la description de l'image ici

83voto

Asim K T Points 28

Utilisez un service en ligne comme Image Baker.

image baker

C'est simple. Téléchargez les images et téléchargez les ressources traitées pour Android et iOS.

Images téléchargées

Remarque : Image Baker est un service gratuit créé par mon ami et moi-même.

45voto

rdromao Points 588

Un script bash utilisant ImageMagick (convert) selon la réponse de CommonsWare :

Ajout de la création de dossier et de la vérification des arguments grâce à Kishan Vaghela

#!/bin/sh
#---------------------------------------------------------------
# Étant donné une image xxhdpi ou une icône d'application (launcher), ce script
# crée différentes ressources dpis et les dossiers nécessaires
# s'ils n'existent pas
#
# Placez ce script, ainsi que l'image source, à l'intérieur du dossier res
# et exécutez-le en passant le nom de l'image en argument
#
# Exemple :
# ./drawables_dpis_creation.sh ic_launcher.png
# OU
# ./drawables_dpis_creation.sh my_cool_xxhdpi_image.png
#
# Droits d'auteur (c) 2016 Ricardo Romao.
# Ce logiciel libre est distribué SANS AUCUNE GARANTIE et
# est distribué sous licence GNU GPL v3.
#---------------------------------------------------------------

if [ $# -eq 0 ]; then
    echo "Aucun argument fourni"
else if [ -f "$1" ]; then
    echo " Création de différentes dimensions (dips) de "$1" ..."
    mkdir -p drawable-xxxhdpi
    mkdir -p drawable-xxhdpi
    mkdir -p drawable-xhdpi
    mkdir -p drawable-hdpi
    mkdir -p drawable-mdpi

    if [ $1 = "ic_launcher.png" ]; then
        echo "  Icône d'application détectée"
        convert ic_launcher.png -resize 144x144 drawable-xxhdpi/ic_launcher.png
        convert ic_launcher.png -resize 96x96 drawable-xhdpi/ic_launcher.png
        convert ic_launcher.png -resize 72x72 drawable-hdpi/ic_launcher.png
        convert ic_launcher.png -resize 48x48 drawable-mdpi/ic_launcher.png
        rm -i ic_launcher.png
    else
        convert $1 -resize 75% drawable-xxhdpi/$1
        convert $1 -resize 50% drawable-xhdpi/$1
        convert $1 -resize 38% drawable-hdpi/$1
        convert $1 -resize 25% drawable-mdpi/$1
        mv $1 drawable-xxxhdpi/$1
    fi
echo " Terminé"
else
    echo "$1 non trouvé."
fi
fi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X