我有一个按钮,其layout_height为10mm,在大多数设备上看起来都正确,但例如Lg Optimus 2X和Motorola Defy上的按钮大约有一半大小:Android:尺寸为毫米或英寸的视图尺寸不正确
我检索到这些设备上的DisplayMetrics信息,这里是一个简短的概述:
HTC Desire Z: 480x800, density : HIGH, xdpi: 254.0, ydpi: 254.0
Motorola Defy: 480x854, density : HIGH, xdpi: 96.0, ydpi: 96.0
Samsung Galaxy S2: 480x800, density : HIGH, xdpi: 217.71428, ydpi: 218.49463
LG Optimus 2X: 480x800, density : HIGH, xdpi: 160.0, ydpi: 160.0
正如你可以看到Desire Z的和三星有一个合理的期待X/Y-DPI值。违抗和优化提供了不正确的值,我认为这是错误大小的原因。
除了为这些设备创建单独的布局文件之外,是否还有其他方法来解决硬件错误?
或者是否建议不要使用mm/in尺寸?
在某些情况下,我不想资产规模...比如某个按钮应该始终有一定的最小尺寸(大约拇指的大小,6-10毫米高)。即使在像x10 240x320和160dpi这样的设备上,按钮仍然应该有6-10mm的高度。我知道这是我正在开发的应用程序的一种特殊要求。但有一个原因为什么有一个毫米/英寸的测量。该文件没有说明不推荐使用该测量。只有px尺寸不推荐。 – 2011-06-06 09:39:33
如果您忽略多功能设备,以毫米/英寸为单位指定的内容将在具有不同dpi的设备上正确缩放。它实际上比dp单位的缩放效果更好(请参阅我的回答以及与之相关的其他问题)。不过,我同意dp是在这个特定情况下使用的单位。 – nibarius 2014-03-28 14:38:26