如何在android中以编程方式获取屏幕密度?
我的意思是:如何找到当前设备的屏幕dpi?
您可以从DisplayMetrics结构中获取有关显示的信息:
DisplayMetrics metrics = getResources().getDisplayMetrics();
尽管 Android 不使用直接像素映射,但它使用了一些量化的密度独立像素值,然后缩放到实际的屏幕尺寸。因此,该metrics.densityDpi属性将是DENSITY_xxx常量之一(120、160、213、240、320、480或640dpi)。
metrics.densityDpi
DENSITY_xxx
120
160
213
240
320
480
640
如果您需要 实际 的lcd 像素密度(可能对于 OpenGL 应用程序),您可以分别从水平和垂直密度的metrics.xdpi和属性中获得它。metrics.ydpi
metrics.xdpi
metrics.ydpi
如果您的目标 API 级别早于 4。该metrics.density属性是参考密度 (160dpi) 的浮点缩放因子。metrics.densityDpi可以计算现在提供的相同值
metrics.density
int densityDpi = (int)(metrics.density * 160f);