我做了一个应用程序--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毫米之外。
答案 0 :(得分:0)
您需要检查metrics.xdpi
和metrics.ydpi
以获得准确的密度数字。
答案 1 :(得分:0)
不幸的是,您只知道设备告诉您的内容,并且将DPI值设置错误是很常见的。这通常是作为一种黑客来完成,以使界面中的视觉元素更大。
有关详情,请参阅此帖子:https://rschilling.wordpress.com/2011/02/03/android-screen-density-inaccuracies/
如果您的应用要求准确性,则需要添加手动校准步骤。