web-dev-qa-db-fra.com

Android - Ajout d'images au projet

Je suis nouveau dans Android et j'utilise Eclipse ADT pour créer une application simple. Cette application possède un bouton qui modifie son image d'arrière-plan en fonction des clics des utilisateurs.

J'ai remarqué qu'il y a 4 dossiers d'images dans mon projet: drawable-hdpi, drawable-ldpi, drawable-mdpi, and drawable-xhdpi.

et j'ai également remarqué que les images qui s'y trouvent actuellement (l'icône du lanceur) sont toutes de tailles différentes.

Est-ce à dire que je dois utiliser un logiciel de retouche d'image pour créer une image pour chaque résolution pour chacune de mes images? Ou (espérons-le) existe-t-il un moyen d'importer une image et de le faire automatiquement pour moi?

Merci!

18
Jan Tacci

Les images et autres fichiers visuels sont stockés dans un ou plusieurs répertoires dessinables. Si seulement dans un répertoire, Android mettra à l'échelle l'image selon les besoins. Si plusieurs répertoires sont utilisés, Android sélectionnera l'image de taille appropriée).

  • drawable-ldpi - Images basse densité
  • drawable-mdpi - Images de densité moyenne
  • drawable-hdpi - Images haute densité
  • drawable-xhdpi - Images à très haute densité (c.-à-d. écrans de type rétine)
  • drawable-xxhdpi - Images extra haute densité supplémentaires (appareils tels que Nexus 10, Samsung Galaxy S4, HTC One et Sony Xperia Z)
  • drawable-xxxhdpi - Triple images à très haute densité ( Nexus 6 et 9 )

(Remarque: les fichiers XML peuvent également être écrits et stockés sous forme de dessins. Ces types de fichiers peuvent contrôler quand plusieurs images doivent être utilisées en fonction de l'état d'une vue ou d'autres paramètres visuels tels que les dégradés, les bordures, etc.)

Alors, que faites-vous devrait?

Pour de meilleurs résultats (à partir des documentation développeur Android ):

Pour générer ces images, vous devez commencer par votre ressource brute au format vectoriel et générer les images pour chaque densité en utilisant l'échelle de taille suivante:

  • xxxhdpi: 4.0
  • xxhdpi: 3.0
  • xhdpi: 2.0
  • hdpi: 1.5
  • tvdpi: 1,33 (téléviseurs uniquement)
  • mdpi: 1.0 (ligne de base)
  • ldpi: 0,75

Cela signifie que si vous générez une image 200x200 pour les périphériques xhdpi, vous devez générer la même ressource en 150x150 pour hdpi, 133x133 pour tvdpi, 100x100 pour mdpi et enfin une image 75x75 pour les périphériques ldpi.

Si vous souhaitez utiliser une seule image et laisser Android échelle pour vous:

Plus de 75% des appareils Android Android ont maintenant des résolutions hdpi ou supérieures, selon le Tableau de bord sur le Android . Donc si vous créez une image à hdpi, par exemple, elle sera parfaite sur environ un tiers des appareils, augmentera l'échelle pour certains et diminuera pour environ 25% des appareils. En général, je pense que vous feriez mieux de réduire l'échelle que à grande échelle aussi.

44
Ben Jakuben

Est-ce à dire que je dois utiliser un logiciel de retouche d'image pour créer une image pour chaque résolution pour chacune de mes images? Ou (espérons-le) existe-t-il un moyen d'importer une image et de le faire automatiquement pour moi?

Si vous disposez déjà de sources haute résolution (ou de formats graphiques vectoriels) de vos images, vous pouvez utiliser Android Asset Studio pour générer des icônes/images à partir de vos propres images source pour chaque densité (moins xxhdpi). Vous pouvez également créer des icônes/images à partir de la valeur par défaut Android clipart, qui peut être thématisée pour différentes versions d'Android. Cela vous évitera quelques tracas de redimensionnement et d'enregistrement avec un outil de retouche d'image.

3
Steven Byle