【发布时间】: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.widthPixels 和 displayMetrics.heightPixels 完全正确。
所以我不确定displayMetrics.xdpi 和displayMetrics.ydpi 是。似乎这个值近似于一些表格值并且不显示真实密度。
我应该怎么做或阅读才能使我的函数返回正确的结果?
【问题讨论】:
标签: android kotlin screen-size