我正在尝试计算Android设备对角线,但结果不正确。
我写:
fun getScreenInches(displayMetrics: DisplayMetrics): Float {
return hypot( displayMetrics.widthPixels / displayMetrics.xdpi, displayMetrics.heightPixels * displayMetrics.ydpi)
}
在获得指标之前:
private fun Activity.getMetrics() = DisplayMetrics().apply {
windowManager.defaultDisplay.getRealMetrics(this)
}
我以这种方式呼叫getScreenInches()
:
getScreenInches(activity.getMetrics())
问题是我的结果超出了我的期望。
[对于7英寸的设备,我约为8.5英寸,对于8英寸的设备,约为9.5英寸。
我调试了代码,得到了什么displayMetrics.widthPixels
和displayMetrics.heightPixels
完全正确。
所以我不确定displayMetrics.xdpi
和displayMetrics.ydpi
是。似乎此值近似于某些表格值,并且未显示实际密度。
我应该做什么或阅读来使我的函数返回正确的结果?
Density = sqrt((wp * wp) + (hp * hp)) / di
where wp indicates is width Resolutions in pixels
hp indicates is height Resolutions in pixels
di is the diagonal size in inches.