小编典典

在android中以编程方式获取屏幕密度?

all

如何在android中以编程方式获取屏幕密度?

我的意思是:如何找到当前设备的屏幕dpi?


阅读 213

收藏
2022-03-09

共1个答案

小编典典

您可以从DisplayMetrics结构中获取有关显示的信息:

DisplayMetrics metrics = getResources().getDisplayMetrics();

尽管 Android
不使用直接像素映射,但它使用了一些量化的密度独立像素值,然后缩放到实际的屏幕尺寸。因此,该metrics.densityDpi属性将是DENSITY_xxx常量之一(120160213240320480640dpi)。

如果您需要 实际 的lcd 像素密度(可能对于 OpenGL
应用程序),您可以分别从水平和垂直密度的metrics.xdpi和属性中获得它。metrics.ydpi

如果您的目标 API 级别早于 4。该metrics.density属性是参考密度 (160dpi)
的浮点缩放因子。metrics.densityDpi可以计算现在提供的相同值

int densityDpi = (int)(metrics.density * 160f);
2022-03-09