如何纠正getMetrics报告的错误DPI

时间:2013-02-01 14:59:51

标签: android

我做了一个应用程序--StribogECG,显示心电图和其他一些文件类型。 在那里,我创建了背景,这是“图形”纸,每毫米有点,每5毫米有一条点线,每25毫米有一条线。问题是某些设备25毫米等于25毫米,但在其他设备上25毫米等于30毫米。

然后我做了一些计算,我发现设备可以报告DPI = 160,但某些平板电脑的实际尺寸为150甚至133。

Acer Iconia Tab A500是10英寸和1280/800。 我所拥有的是:

metrics.xdpi = 160;
metrics.densityDpi = 160;
metrics.density=1;
metrics.scaledDensity=1;

在这种情况下,设备的直径必须为9.4英寸,如果直径为10英寸,则DPI必须为150。

当然我用普通测量线测量,而不是25毫米,我有26.5毫米。一些7英寸平板电脑的问题要大得多。 在这一刻,我只能看到一个解决方案 - 要求用户进行额外校准 - 在屏幕上打印两行,并要求用户将第二行放在50或100毫米之外。

2 个答案:

答案 0 :(得分:0)

您需要检查metrics.xdpimetrics.ydpi以获得准确的密度数字。

答案 1 :(得分:0)

不幸的是,您只知道设备告诉您的内容,并且将DPI值设置错误是很常见的。这通常是作为一种黑客来完成,以使界面中的视觉元素更大。

有关详情,请参阅此帖子:https://rschilling.wordpress.com/2011/02/03/android-screen-density-inaccuracies/

如果您的应用要求准确性,则需要添加手动校准步骤。