36 votes

Tailles d'écran Android en pixels pour ldpi, mdpi, hpdi?

J'ai lu 10 articles mais je ne trouve toujours pas de relation entre ldpi, mdpi, hdpi et les dimensions réelles en pixels!? Quelqu'un peut-il donner une réponse simple s'il vous plaît (s'il y en a une!)

J'essaie essentiellement de mettre en place un écran de démarrage qui doit fonctionner sur plusieurs appareils sans s'étirer - mais j'ai du mal car tout ce que j'essaie est écrasé ou étiré!?

Bravo Paul

76voto

Eitan Points 571

Le ldpi, mdpi et hdpi reportez-vous à la densité de l'écran, ce qui signifie combien de pixels capable de tenir dans un seul centimètre.

le ratio des pixels entre eux est:

  • ldpi = 1:0.75
  • mdpi = 1:1
  • hdpi = 1:1.5
  • xhdpi = 1:2
  • xxhdpi = 1:3
  • xxxhdpi = 1:4

donc permet de prendre une image avec une taille de 100X100:

  • pour mdpi il convient de 100X100
  • pour ldpi il convient de 75X75
  • pour hdpi il devrait être 150X150
  • pour xhdpi il devrait être de 200 x 200
  • pour xxhdpi il devrait être 300X300
  • pour xxxhdpi il convient de 400X400

de cette façon, pour les écrans de même taille mais de différentes DPI, toutes les images semblent de la même taille à l'écran.

Aussi, vous avez plusieurs taille de l'écran des types petit, normal, large, xlarge, et chacun d'eux peut être ldpi, mdpi, hdpi, xhdpi, xxhdpi (Nexus 10) ou xxxhdpi.

Vous pouvez essayer de créer une image d'écran de démarrage qui s'adaptent à chaque type d'écran qui vous donne 4*5 = 20 images différentes (il semble beaucoup pour moi).

Pour l'instant, seul le Nexus 10 est à la xxhdpi catégorie.

25voto

Peter Points 1414

Installez ImageMagick et utilisez ce script shell pour générer vos fichiers de démarrage et d'icône pour plusieurs appareils - iOS, Android, Bada et Windows Phone. Vous pouvez utiliser cygwin / gitbash si vous êtes sous Windows

Je viens de le faire et j'en suis assez content :-)

Les tailles d'écran sont à l'intérieur du script et sont -

 480x800 - screen-hdpi-portrait.png
320x200 - screen-ldpi-landscape.png
720x1280 - screen-xhdpi-portrait.png
320x480 - screen-mdpi-portrait.png
480x320 - screen-mdpi-landscape.png
200x320 - screen-ldpi-portrait.png
800x480 - screen-hdpi-landscape.png
 

7voto

Damian Points 4588

Les définitions sont les suivantes:

  • xlarge écrans sont au moins 960dp x 720dp. les grands écrans sont à moins 640dp x 480dp. écrans normaux sont au moins 470dp x 320dp. les petits écrans sont au moins 426dp x 320dp. (Android n'est pas actuellement support des écrans plus petits que cela.)

Consultez aussi cet article sur le blog de Dianne Hackborne: http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html

Probablement la chose la plus facile est d'utiliser une image à afficher et de définir la scaletype à CENTER_CROP. (À l'échelle de l'image de manière uniforme (maintenir le format de l'image), de sorte que les deux dimensions (largeur et hauteur) de l'image sera égale ou supérieure à la dimension correspondante de la vue).

Assurez-vous que vous utilisez la src de la balise plutôt que de définir l'arrière-plan.

<ImageView
   android:id="@+id/home_video_layout"
   android:src="@drawable/splash_image"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:scaleType="centerCrop"
   />

Mise à jour:

La compréhension de l'Écran de Densités et de la "dp"

La résolution est le nombre de pixels disponibles dans l'affichage, la densité est le nombre de pixels qui apparaissent au sein d'une constante de la zone de l'écran, et la taille est la quantité d'espace disponible pour l'affichage de votre interface. Ce sont interdépendants: l'augmentation de la résolution et la densité de l'ensemble, et la taille reste la même. C'est pourquoi le 320x480 écran sur un G1 et 480x800 écran sur un Droid sont tous les deux la même taille d'écran: le 480x800 écran a plus de pixels, mais il est également plus forte densité.

Pour supprimer la taille et de la densité des calculs à partir de l'image, l'Android framework fonctionne dans la mesure du possible en termes de "dp" des unités, qui sont corrigés pour la densité. Dans de densité moyenne ("mdpi") écrans, qui correspondent à l'origine des téléphones Android, physique pixels sont identiques à dp, les dispositifs de " dimensions sont 320x480 en soit l'échelle. Plus récemment téléphone ait physiques-dimensions en pixels de 480x800, mais une haute densité de l'appareil. Le facteur de conversion de hdpi à mdpi dans ce cas est de 1,5, donc, pour un développeur, le dispositif est 320x533 en dp.

3voto

Ridcully Points 8353

J'ai trouvé cette ligne dip <--> pixels calculatrice très utile.

http://labs.skinkers.com/content/android_dp_px_calculator/

1voto

Ewoks Points 3910

Je soutiens les réponses précédentes, mais n'oubliez pas la puissance de Draw9Patch ou à l'aide de NinePatchDrawables

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