如何获得API 30+的设备显示DPI



在API 30之前,您可以这样做:

val displayMetrics = DisplayMetrics()
windowManager.defaultDisplay.getMetrics(displayMetrics)
App.log("ScreenDensity: ${displayMetrics.densityDpi}")
App.log("ScreenDensity: W - ${displayMetrics.xdpi}")
App.log("ScreenDensity: H - ${displayMetrics.ydpi}")

但由于API 30,DisplayMetrics已被弃用,因此您必须使用WindowMetrics。但我在WindowMetrics中没有看到任何与DPI相关的功能。

虽然WindowManager#getDefaultDisplay()已被弃用,但DisplayMetrics本身并未被弃用。您可以在Kotlin中获得如下示例:

resources.displayMetrics

所以你可以得到这样的密度:

resources.displayMetrics.density

最新更新