Sebenarnya jika Anda ingin memiliki tampilan nyata dpi , jawabannya ada di antara keduanya jika Anda meminta metrik tampilan:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int dpiClassification = dm.densityDpi;
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;
densityDpi * 160 akan memberi Anda nilai / saran kepadatan mana yang harus Anda gunakan
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
seperti yang ditentukan dalam posting sebelumnya
tetapi dm.xdpitidak akan selalu memberi Anda dpi NYATA dari tampilan yang diberikan: Contoh:
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
jadi mungkin nyata dpi tampilan harus Density * xdpi .. tapi saya tidak yakin apakah ini cara yang benar untuk dilakukan!
getDisplayMetrics().xdpi, yang seharusnya mengembalikan dpi perangkat yang sebenarnya. Harap perhatikan bahwa nilai ini tidak ditetapkan secara konsisten di seluruh perangkat oleh pabrikan, jadi Anda tidak dapat menggunakannya . Sedih tetapi benar: informasi tentang dpi nyata tidak tersedia . Sumber: groups.google.com/d/msg/android-developers/g56jV0Hora0/…