如何正确计算android设备对角线?

问题描述 投票:0回答:1

我正在尝试计算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.widthPixelsdisplayMetrics.heightPixels完全正确

所以我不确定displayMetrics.xdpidisplayMetrics.ydpi是。似乎此值近似于某些表格值,并且未显示实际密度。

我应该做什么或阅读来使我的函数返回正确的结果?

android kotlin screen-size
1个回答
0
投票
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.
© www.soinside.com 2019 - 2024. All rights reserved.