【问题标题】:Is dp based on the physical size of the screen? (dp =1/160 of an inch)dp是基于屏幕的物理尺寸吗? (dp = 1/160 英寸)
【发布时间】:2014-01-10 03:47:12
【问题描述】:

这个定义正确吗?

dp 与密度无关的像素 - 基于屏幕物理尺寸的 1/160 英寸。

我发现了相互矛盾的信息:

官方documentation 假设在等式“px = dp * (dpi / 160)”中按比例缩放。 还有here (3:02) Roman Nurik 说“按比例缩放

但在官方文档中:

px 像素 - 对应于屏幕上的实际像素。以英寸来算 - 基于屏幕的物理尺寸。 mm 毫米 - 基于 屏幕的物理尺寸。 pt 点 - 1/72 英寸,基于 屏幕的物理尺寸。 dp 与密度无关的像素 - An 基于屏幕物理密度的抽象单位。 这些单位相对于 160 dpi(每英寸点数)的屏幕,在该屏幕上 1dp 大约等于 1px。在更高密度的屏幕上运行时, 用于绘制 1dp 的像素数按比例放大 适合屏幕的 dpi。同样,当密度较低时 屏幕,用于 1dp 的像素数按比例缩小。的比率 dp-to-pixel会随着屏幕密度而变化,但不一定 成正比

如果我的定义是正确的,既然我们已经有了众所周知的 mm、in 和 pt,为什么还要引入新的物理尺寸度量?

【问题讨论】:

    标签: android


    【解决方案1】:

    mmin 之类的测量单位不会那么混乱,因为 dp 测量的是相同的现实世界观察到的长度。另一方面,这会产生误导,因为dp 不是一个绝对定义的单位。

    使用屏幕密度桶意味着dp 有点模糊 - 但它会保持在合理的 (+/-20% ?) 精度范围内。现实世界的显示器通常不完全是例如160dpi 它们可以是 173.4 dpi,但仍被归类为 160dpi。从dp 转换为屏幕上的像素所执行的数学运算是基于这些桶完成的,这意味着dp 的准确度取决于您的设备屏幕满足其分类的准确度。

    但要清除您的疑问:无论您手中拿着什么设备,160dp 始终是 1(模糊)英寸。更容易想到:50dp = 1(小)手指宽。


    另一方面,px Pixels 是实际像素。全高清显示器有 1920x1080,但该单位没有说明屏幕尺寸或这样的像素对用户显示的大小。 dpdip 是不同的单位,在我看来不应该被称为“像素”。

    【讨论】:

      【解决方案2】:

      20:00 后查看此内容

      http://www.youtube.com/watch?v=pBKGbCu0pJg&list=PLWz5rJ2EKKc8j2B95zGMb8muZvrIy-wcF

      与 Nick Butcher、Adam Koch 和 Roman Nurik 一起讨论 Android 计量单位。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多