540 votes

l'obtention de la densité de l'écran de programme dans android?

Comment obtenir la densité de l'écran de programme dans android?

Je veux dire Comment trouver de l'écran résolution de l'appareil actuel?

554voto

joshperry Points 17727

Vous pouvez obtenir des informations sur l'affichage de la DisplayMetrics struct:

DisplayMetrics metrics = getResources().getDisplayMetrics();

Si Android n'utilise pas directement le cadrage des pixels, il utilise une poignée de quantification de la Densité de Pixel Indépendant valeurs des échelles à la taille réelle de l'écran. Si l' metrics.densityDpi de la propriété sera l'un de la DENSITY_??? des constantes (120, 160, 213, 240, 320, 480 ou 640 dpi).

Si vous avez besoin de la réelle densité de pixels de l'écran lcd (peut-être pour une application OpenGL), vous pouvez obtenir à partir de l' metrics.xdpi et metrics.ydpi propriétés horizontale et verticale de la densité, respectivement.

Si vous ciblez les API des Niveaux plus tôt que 4. L' metrics.density de la propriété est un flottant facteur d'échelle de la masse volumique de référence (160dpi). La même valeur aujourd'hui fournie par metrics.densityDpi peut être calculée

int densityDpi = (int)(metrics.density * 160f);

400voto

Blundell Points 28342

Cela fonctionne aussi:

 getResources().getDisplayMetrics().density;

Cela vous donnera:

0.75 - ldpi

1.0 - mdpi

1.5 - hdpi

2.0 - xhdpi

3.0 - xxhdpi

4.0 - xxxhdpi

enter image description here

ref: densité

147voto

Mitul Nakum Points 2796
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi){
     case DisplayMetrics.DENSITY_LOW:
                break;
     case DisplayMetrics.DENSITY_MEDIUM:
                 break;
     case DisplayMetrics.DENSITY_HIGH:
                 break;
}

Ce sera le travail de l'API de lavel 4 ou plus.

45voto

wizist Points 433

Essayez ceci:

DisplayMetrics dm = context.getResources().getDisplayMetrics();
int densityDpi = dm.densityDpi;

38voto

Jere.Jones Points 5394

Pour obtenir dpi:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH
int dpiClassification = dm.densityDpi;

// these will return the actual dpi horizontally and vertically
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

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