Question

J'ai une idée approximative de ce à quoi sert chacun de ces répertoires, mais je ne suis pas vraiment clair sur le concept et j'ai quelques questions spécifiques.

Par exemple, quels sont les DPI cibles pour chaque répertoire?Lorsque vous créez un élément, doit-il être à ce DPI cible ou doit-il être au DPI d'écran plus normal de 72 dpi?Si vous ciblez plusieurs appareils, est-il jamais approprié de mettre un PNG en dessin ou devriez-vous toujours avoir plusieurs versions légèrement adaptées aux écrans spécifiques?

Merci.

Était-ce utile?

La solution

Comme les autres l'ont suggéré, la documentation en ligne d'Android contient d'excellents articles à ce sujet. Cependant, je vais essayer de lister ici quelques conseils rapides et utiles:

  1. Considérez que MDPI est 1. Ensuite, LDPI est 0.75 et HDPI est 1.5. Cela signifie que si vous avez un drawable, c'est-à-dire un 50x50 sur un écran MDPI, il devra être ~37x37 sur un écran LDPI et 75x75 sur un écran HDPI, pour apparaître à peu près à la même taille physique sur chaque écran (soit 2cm si vous mettez une règle sur l'écran). De plus, l'écran de votre ordinateur est très probablement MDPI, c'est pourquoi il est recommandé de commencer par les dessinables MDPI puis de les redimensionner: la taille physique du dessinable sera très proche entre votre écran d'ordinateur et un appareil Android MDPI. Si vous visualisez un dessin HDPI sur votre ordinateur et sur un appareil HDPI, vous remarquerez qu'il est beaucoup plus gros (encore une fois, physiquement - mettez une règle sur le style) sur le Écran du PC.
  2. Si vous ne fournissez pas d'éléments de dessin spéciaux pour chaque densité, Android mettra automatiquement à l'échelle le plus proche disponible.
  3. Vous ne devez pas considérer le DPI d'un appareil comme ayant quoi que ce soit à voir avec la taille de l'écran et / ou le nombre de pixels et / ou la résolution et / ou le rapport hauteur / largeur. Un appareil peut être très petit et avoir un écran HDPI ou très grand et avoir un écran LDPI. L'intérêt de cette différenciation de densité est que les éléments paraissent de la même taille sur tous les appareils, pas de la même manière sur tous les appareils. Par exemple, si un dessinable remplit tout l'écran sur un périphérique MDPI, ne vous attendez pas à ce qu'il fasse la même chose sur un autre périphérique MDPI. Aussi, ne vous attendez pas à «voir la même chose» sur différents appareils DPI. La plupart des appareils HDPI disposent en fait de plus d'espace que les appareils moins DPI. Par exemple, si un ListView peut afficher 5 éléments sur un périphérique MDPI, il pourrait être en mesure d'afficher 6 éléments sur un périphérique HDPI, en dépit du fait que les éléments ListView ont la même densité indépendante (c'est-à-dire 1,5 fois plus grand sur HDPI que sur MDPI) hauteur.

Je suis peut-être allé un peu hors sujet, mais ce sont des choses que j'ai apprises avec le temps en me cognant la tête contre eux. J'essaie juste de sauver le mal de tête de quelqu'un d'autre :)

Autres conseils

Désolé, mais Android a un excellent document en ligne avec des exemples, donc pour ce type de question, la réponse est:

http://developer.android.com/guide/practices/screens_support.html

En raison des différentes tailles d'écran et résolutions, Android vous permet d'organiser vos images dessinables en fonction de dossiers.Les images pour les écrans à haute résolution doivent être placées en hdpi et de la même manière mdpi et ldpi.Le dossier par défaut pour les drawables est drawables si le système d'exploitation ne correspond à aucune catégorie dpi ou si les ressources ne se trouvent pas dans des répertoires dpi spéciaux, le système sélectionne la ressource dans le répertoire drawables.

La taille n'est pas exacte mais jusqu'à 130 dpi, elle est considérée comme petite, de 130 à 180 elle peut être considérée comme mdpi, de 180 à 200 elle peut être considérée comme hdpi et la plus élevée est classée comme xdpi.

http://developer.android.com/guide/practices/screens_support.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top