【问题标题】:How to calculate android device diagonal correctly?如何正确计算android设备对角线?
【发布时间】:2019-10-18 05:08:00
【问题描述】:

我正在尝试计算 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】:
    Density = sqrt((wp * wp) + (hp * hp)) / di
    

    其中wp 表示宽度分辨率(以像素为单位),hp 表示高度分辨率(以像素为单位),di 表示对角线大小(以英寸为单位)。

    【讨论】:

      猜你喜欢
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 2016-01-31
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 2023-02-24
      相关资源
      最近更新 更多