在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