web-dev-qa-db-fra.com

Dossiers dessinables dans le dossier res?

Quelle est la différence entre les trois dossiers dessinables du dossier res dans la hiérarchie du projet? Si j'ai une image à placer dans un dossier, dans quel dossier dois-je la placer?

47
Mohit Deshpande

Je vais supposer que "les trois dossiers dessinables" sont drawable-ldpi, drawable-mdpi, et drawable-hdpi. Dans ce cas, si vous vous en tenez à tous ces dossiers, vous devez mettre une image dans chacun, dimensionnée pour correspondre à la densité d'écran indiquée. Ceci est discuté dans la documentation en ligne ainsi que cette article de blog . Vous pouvez trouver un ensemble d'exemples de projets montrant l'utilisation de différentes ressources utilisables en fonction de la densité de l'écran ici .

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

75
CommonsWare

Voici une référence à options multi-appareils .

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

5
Graeme

Aussi intéressant, bien que non spécifique aux images, 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 récupéré moins spécifique.

Par exemple, vous avez trois valeurs String dans strings.xml dans votre dossier de valeurs. Vous avez également une chaîne spécifique dans un dossier appelé values-en. Lorsque Android ouvre votre application et votre locale correspond à en, il charge deux valeurs par défaut à partir du dossier values ​​et la troisième chaîne, plus spécifique, à partir de values-en. Si votre locale est ru, elle utilisez simplement la valeur par défaut à la place car vous n'avez pas de dossier values-ru.

Il en va de même 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 dessinable.

À mon avis, c'est une bonne pratique d'avoir des valeurs/images par défaut dans vos dossiers génériques comme des valeurs/dessinables et des valeurs/images spécifiques 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.

1
G_V