我想知道为什么Eclipse会显示:
我认为,由于“密度桶”,“dp”很容易不准确〜
http://developer.android.com/design/style/metrics-grids.html
和“mm”和“in”(显示相同的警告)相比之下,“dp”单位是最准确的单位(在屏幕上1英寸真的是1英寸)。
有趣的是,“pt”不会让eclipse显示出这样的警告。
我认为“mm”“in”和“pt”的行为方式相同(它们非常准确,因为不依赖于密度桶)。
非常感谢您的回答。
答案 0 :(得分:0)
你是正确的,因为密度桶,dp不完全准确。一个dp的大小可以是设备上一个dp大小的88%到117%,其中真正的dpi与桶dpi完全匹配,具体取决于真正的dpi和桶dpi之间的差异有多大。比率更高的设备应该放入下一个/上一个桶中。
正如你所说mm,inch和pt更精确,因为它们是基于真正的物理dpi而不是dpi。
但是,市场上有一些设备可以报告Android(DisplayMetrics.xdpi和DisplayMetrics.ydpi的物理dpi不正确,因此,因此使用mm,in或pt这些设备上的任何内容都会出错尺寸。
报告错误物理dpi的设备示例包括:Samsung Galaxy Mini, Samsung Galaxy S3 Mini,Lg Optimus 2X, Motorola Defy。
这就是为什么Eclipse说这些单元在所有设备上无法正常工作的原因。没有警告pt的原因可能是因为添加此警告的开发人员忘记了pt,或者从未在有问题的设备上测试过这种情况。
有关同一主题的详细信息,请参阅我对问题Why Lint shows warning when using in (inch) or mm (millimeter) units as dimension?
的回答