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

新手上路,请多包涵

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

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

原文由 Praveen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 653
2 个回答

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

 DisplayMetrics metrics = getResources().getDisplayMetrics();

尽管 Android 不使用直接像素映射,但它使用了一些量化的密度独立像素值,然后缩放到实际的屏幕尺寸。 So the metrics.densityDpi property will be one of the DENSITY_xxx constants ( 120 , 160 , 213 , 240320480640

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

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

int densityDpi = (int)(metrics.density * 160f);

原文由 joshperry 发布,翻译遵循 CC BY-SA 3.0 许可协议

科特林

LocalContext.current.resources.displayMetrics.density

得到密度乘数。

原文由 Pomme2Poule 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题