Вы можете получить информацию на дисплее из структуры DisplayMetrics :
DisplayMetrics metrics = getResources().getDisplayMetrics();
Хотя Android не использует прямое сопоставление пикселей, он использует несколько квантованных значений, независимых от плотности пикселей, а затем масштабируется до фактического размера экрана. Таким образом, metrics.densityDpiсвойство будет одним из DENSITY_xxxконстант ( 120, 160, 213, 240, 320, 480или 640точек на дюйм).
Если вам нужна фактическая плотность ОК - пиксельный (возможно для приложения OpenGL) , вы можете получить его от metrics.xdpiи metrics.ydpiсвойств для горизонтальной и вертикальной плотности соответственно.
Если вы ориентируетесь API уровней раньше , чем 4. metrics.densityСвойство с плавающей точкой коэффициент масштабирования от исходной плотности (160dpi). То же значение, предоставленное теперь, metrics.densityDpiможет быть рассчитано
int densityDpi = (int)(metrics.density * 160f);
getDisplayMetrics().xdpi, которые должны возвращать реальное dpi устройства. Обратите внимание, что это значение не всегда корректно устанавливается на разных устройствах изготовителями, поэтому вы просто не сможете их использовать . Печально, но факт: информация о реальных точках на дюйм недоступна . Источник: groups.google.com/d/msg/android-developers/g56jV0Hora0/…