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.xdpi
tidak 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/…