你是对的,因为密度桶, dp 并不完全准确。一个 dp 的大小可以在一个设备上一个 dp 大小的 88% 到 117% 之间,其中真实 dpi 与存储桶 dpi 完全匹配,具体取决于真实 dpi 和存储桶 dpi 之间的差异有多大。如果比率大于该设备,则应将设备放入下一个/上一个桶中。
正如您所说,mm、inch 和 pt 更准确,因为它们是基于真实的物理 dpi 而不是存储桶 dpi。
但是,市场上有一些设备会向 Android 报告不正确的物理 dpi(DisplayMetrics.xdpi和DisplayMetrics.ydpi),因此在这些设备上使用 mm、in 或 pt 的任何东西都会得到错误的尺寸。
报告不正确物理 dpi 的设备示例包括:Samsung Galaxy Mini、Samsung Galaxy S3 Mini、Lg Optimus 2X、Motorola Defy。
这就是为什么 Eclipse 说这些单元不能在所有设备上准确工作的原因。pt 没有警告的原因可能是因为添加此警告的开发人员只是忘记了 pt,或者从未在有问题的设备上测试过。
有关同一主题的更多详细信息,请参阅我对问题的回答为什么 Lint 在使用(英寸)或毫米(毫米)单位作为尺寸时显示警告?