繁体   English   中英

Android:如何以编程方式找出设备的精确像素长宽比?

[英]Android: how to find out devices' exact pixel aspect ratio programatically?

我想使用OpenGL ES 2.0在我的Android应用程序中显示应该是所有正方形的图块。

安装在Android设备上的应用是否可以在没有用户输入的情况下以编程方式找出设备屏幕各个像素的确切宽高比?

我认为你要找的是DisplayMetrics类。 它有字段heightPixelswidthPixels ,它们提供屏幕尺寸,以及像素密度等其他有用信息。

如文档中所述,您可以使用getWindowManager().getDefaultDisplay().getMetrics(metrics);获取设备的DisplayMetrics.getDefaultDisplay getWindowManager().getDefaultDisplay().getMetrics(metrics);

我不建议使用从Display.getMetrics获得的xdpi和ydpi值。 已知这些值对于某些设备是不正确的(例如,在华为Ascend P1上,我得到的xdpi和ydpi值为152.4和451.6,这绝对是偏离的,像素比这更加方形)。 如果您尝试根据这些不正确的值绘制完美的正方形,则最终可能会在某些设备上使用高度拉伸的矩形。 目前我最好的建议是假设像素是方形的,我理解这不是理想的情况。 请参阅https://groups.google.com/forum/#!topic/android-developers/g56jV0Hora0 Android平台代码不使用这些值。 相反,密度和密度DPI用于x和y坐标。 您甚至可以尝试比较您的xdpi和ydpi值,如果它们显着不同,则默认为方形像素,尽管我认为这也是一个混乱的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM