div、px、dpi 之间的关系
如果在布局 xml 文件中,我将大小设置为,例如 12dip。 mdpi 中总是 12px,hdpi 中总是 18px 吗?
那么,dip 对于 mdpi 是否总是正确,并且对于其他密度也会相应地缩放?
If, in a layout xml file, I set the size to be, for example 12dip. Will that always be 12px in mdpi and so 18px in hdpi?
So is dip always true for mdpi and will scale accordingly for other densities?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
官方文档完全涵盖了这个问题。 div、px 和 dpi 之间的关系由 this 介绍 部分。
引用:
所以声明:
根据文档,
That question is fully covered by official documentation. Relations between dip, px and dpi are covered by this section.
Quote:
So the statement:
seems to be correct, according to the docs.
在密度为 160 dpi 的设备上,12dp 为 12px。文档并没有说所有
mdpi
设备都具有 160 dpi,因此您可能会找到具有其他密度(例如 150 或 180 dpi)的mdpi
设备。在这些情况下,关系1dp = 1px
将不成立。你只能确定这个关系:
如果设备的密度为 320 dpi,那么每个 dp 对应于 2 px,因为 320/160 是 2。我会说 2 是“密度因子”,但它也是您可以使用
getResources().getDisplayMetrics().densis
获得,因此也称为“密度”。12dp will be 12px on a device with density 160 dpi. The docs don't say that all
mdpi
devices have exactly 160 dpi so it seems you might findmdpi
devices with other densities (e.g. 150 or 180 dpi). In those cases, the relation1dp = 1px
would not be true.You can only be sure of this relation:
If a device has a density of 320 dpi then each dp corresponds to 2 px, because 320/160 is 2. I would say that 2 is the "density factor", but it is also what you get with
getResources().getDisplayMetrics().density
, so it is also called "density".