有没有办法确定 Android 物理屏幕高度(以厘米或英寸为单位)?
我需要确切地知道设备上的屏幕有多大(以实际长度单位表示),以便我可以计算重力加速度(以每毫秒像素为单位)。
Android API 中有一个方法可以实现这一点吗?
I need to know exactly how big the screen is on the device in real units of length so I can calculate the acceleration due to gravity in pixels per millisecond.
Is there a method somewhere in the Android API for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
以下代码片段将帮助您获取屏幕尺寸(以英寸为单位)
希望有所帮助。
Following code snippet will help you to get Screen Size in Inches
Hope this help.
我已经尝试了其他答案中提到的大多数方法,但这些方法在特定设备上失败。这是我对解决这个问题的一些贡献。该代码是用 Kotlin 编写的
获取 DisplayMetrics 对象:
计算以英寸为单位的屏幕宽度,如下所示:
在这里,我使用 widthPixels 以点点数 (dp) 计算设备的宽度,然后将其转换为以英寸为单位的宽度。我使用 160 .ie DisplayMetrics.DENSITY_MEDIUM 作为转换因子将 widthPixels 转换为 widthInDotPoints。
同样,计算屏幕高度(以英寸为单位):
I have tried most of the ways mentioned in the other answers, but those methods fail on particular devices. So here is bit of my contribution to solving this problem. The code is written in Kotlin
Get the DisplayMetrics object :
Calculate the Screen width in inches as follows :
Here, I have calculated the width of device in terms of dot points(dp) using widthPixels and then converted it to width in terms of inches. I have used 160 .i.e DisplayMetrics.DENSITY_MEDIUM as conversion factor to convert the widthPixels to widthInDotPoints.
Similarly, calculate the Screen Height in inches :
我用它来获取实际尺寸
I used this to get the real size
有些设备(例如像素)返回的 xdpi、ydpi 不正确。
所以你可以根据密度来计算。
Some device like pixel return xdpi, ydpi not correct.
So you can calculator base on density.
您需要使用屏幕密度来计算此值。
根据文档:
You need to use the screen density to calculate this.
According to the documentation:
使用以下内容:
当从下面的代码中获取 mWidthPixels 和 mHeightPixels 时
请参阅此帖子以供参考:
获取屏幕尺寸(以像素为单位)
Use the following:
When mWidthPixels and mHeightPixels are taken from below code
See this post for reference:
Get screen dimensions in pixels
要获取当前大小,请在最后使用 Math.round 。
for getting the current size use Math.round at the end.
Android 开发者屏幕信息。
使用
xdpi * widthPixels 和
ydpi * heightPixels
可能会得到你想要的东西,我想。android developers screen info.
use
xdpi * widthPixels
andydpi * heightPixels
might get you what you want i think.