Gerçek ekran dpi'sine sahip olmak istiyorsanız, ekran metriklerini sorgularsanız yanıt aralarında bir yerdedir:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int dpiClassification = dm.densityDpi;
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;
densityDpi * 160, kullanmanız gereken yoğunluğu / değeri verecektir
0.75 - ldpi - 120 dpi
1.0 - mdpi - 160 dpi
1.5 - hdpi - 240 dpi
2.0 - xhdpi - 320 dpi
3.0 - xxhdpi - 480 dpi
4.0 - xxxhdpi - 640 dpi
önceki yazılarda belirtildiği gibi
ancak dm.xdpi
her zaman verilen ekranın GERÇEK dpi'sini vermez : Örnek:
Device: Sony ericsson xperia mini pro (SK17i)
Density: 1.0 (e.g. suggests you use 160dpi resources)
xdpi: 193.5238
Real device ppi is arround 193ppi
Device: samsung GT-I8160 (Samsung ace 2)
Density 1.5 (e.g. suggests you use 240dpi resources)
xdpi 160.42105
Real device ppi is arround 246ppi
belki ekran gerçek dpi Yoğunluk * xdpi .. olmalı ama bunun doğru yolu olup olmadığından emin değilim!
getDisplayMetrics().xdpi
, cihazın gerçek dpi'sini döndürmesi gerektiği anlamına gelir . Lütfen bu değerin, üreticiler tarafından cihazlarda tutarlı bir şekilde doğru ayarlanmadığına dikkat edin, bu nedenle bunları kullanamazsınız . Üzücü ama gerçek: gerçek dpi hakkında bilgi mevcut değil . Kaynak: groups.google.com/d/msg/android-developers/g56jV0Hora0/…