2010-03-28 5 views

Répondre

75

Je vais deviner que "les trois dossiers drawable" sont drawable-ldpi, drawable-mdpi et drawable-hdpi. Dans ce cas, si vous vous en tenez à tous ces dossiers, vous devez placer une image dans chacun d'eux, dimensionnée pour correspondre à la densité d'écran indiquée. Ceci est discuté dans le online documentation ainsi que ce blog post. Vous pouvez trouver un ensemble de projets exemples illustrant l'utilisation de différentes ressources pouvant être mises en forme en fonction de la densité d'écran here.

Si vous débutez dans le développement Android, vous pouvez vous débarrasser de ces trois répertoires et créer un seul répertoire drawable, en y ajoutant votre image. Éventuellement, pour une application de qualité, vous voudrez tester vos images sur différents périphériques/émulateurs avec différentes densités d'écran, et éventuellement avoir des images différentes pour chaque densité afin d'améliorer l'apparence de votre application.

+20

Vous n'avez pas besoin de mettre une image dans chaque; la plate-forme choisira l'image qui correspond le mieux à la densité de l'appareil, et elle ne correspond pas à l'échelle exacte. De même, pour les applications ciblant la version 1.6 ou ultérieure, il est fortement recommandé de placer vos bitmaps dans un répertoire correspondant à la densité définie (cela n'a aucun sens d'avoir un bitmap sans spécification de densité); Bien sûr, les non-bitmaps, comme les divers tirages XML, n'ont généralement pas besoin de cela et devraient être dans le répertoire simple. Voir aussi: http://developer.android.com/guide/topics/resources/resources-i18n.html#AlternateResources – hackbod

+4

LINT se plaindra si vous placez des images bitmap évolutives dans le dossier/drawable. Il est actuellement destiné aux éléments sans densité, tels que les éléments dessinables basés sur xml. –

5

Voici une référence à multi device options.

Comme l'a dit @CommonsWare, vous n'avez pas besoin de mettre des ressources en tout sauf res/layout/ou drawable/mais si vous voulez que votre programme d'avoir une meilleure expérience sur plusieurs appareils avec différents écrans/densité/langues que vous voudrez peut-être considérer que vous avez cette option.

1

Egalement intéressant, bien que n'étant pas spécifique aux images, c'est la façon dont android gère les ressources. Il leur donne un ordre de chargement, où plus spécifique signifie qu'il sera choisi moins spécifique. Par exemple, vous avez trois valeurs de chaîne dans strings.xml dans votre dossier de valeurs. Par exemple, vous avez trois valeurs de chaîne dans strings.xml. Vous avez également une chaîne spécifique dans un dossier appelé valeurs-en. Lorsque Android ouvre votre application et que votre locale correspond à en, elle chargera deux valeurs par défaut du dossier values ​​et la troisième, plus spécifique, de values-en. Si votre locale est ru, elle utilisera simplement la valeur par défaut car vous n'avez pas de dossier values-ru.

La même chose est vraie pour les images. Si Android ne peut pas trouver d'images pour votre variante d'écran spécifique, il utilisera les valeurs par défaut du dossier drawable. À mon avis, il est recommandé d'avoir des valeurs/images par défaut dans vos dossiers génériques comme des valeurs/drawable et des valeurs spécifiques/images dans des dossiers spécifiques. De cette façon, les appareils actuels et futurs auront au moins un moyen d'afficher votre contenu jusqu'à ce que vous puissiez fournir des versions spécifiques.

Questions connexes