【问题标题】:Android - Absolute unit of measurementAndroid - 绝对测量单位
【发布时间】:2016-07-31 09:01:13
【问题描述】:

如果我想在每个 Android 屏幕上创建恰好相距一英寸的东西,我会使用像素对吗?英寸和 dp 似乎可以缩放到屏幕的单个尺寸,这意味着在一个设备上它可能是一英寸,而在另一个设备上它可能是 1 1/4。

此外,除了找出一英寸中有多少像素然后务实地添加具有正确边距的视图之外,还有更简单的方法吗?

【问题讨论】:

    标签: android units-of-measurement


    【解决方案1】:

    您将使用 与密度无关的 像素。也称为 dip 或简称 dp

    Dp 确保每个屏幕上的内容大小几乎相同。 (“几乎”是因为这是 android,具有巨大的碎片,以及自定义 rom,...等)

    因此,一英寸将是每个屏幕上不同数量的像素。如果你使用像素,高分辨率显示器上的东西会更小。所以使用 dp 并且在实际屏幕上一切都会是正确的大小。

    虽然使用 dp 可能会偏离一两个像素(可能!),但这可能已经足够了。此外,您应该尽量不要使用 android 创建像素完美的设计——您将很难使用不同的屏幕尺寸(而不仅仅是分辨率)
    一般而言,您应该尝试按照 google 的 material design guidelines 用于 android,而不是使用 8dp 的倍数作为尺寸,而不是试图找出一英寸是多少。

    【讨论】:

      【解决方案2】:

      与密度无关的像素 (dp) 是在任何设备上看起来与实际长度相同的度量单位。

      试试这个:创建一个宽度为 100dp 的视图并在 hdpi 设备上运行它。使用尺子或其他东西测量视图的宽度。然后在 mdpi 设备上运行应用程序并测量宽度。你会发现这两个宽度差不多。

      这意味着,顾名思义,dp 的实际长度与屏幕密度无关。

      但是,如果您使用像素,则实际长度会因屏幕密度而异。如果屏幕更密集,100px 会显得更短。如果屏幕不那么密集,100px 会显得更长。

      明白了吗?

      tl;dr:只需使用 dp!

      【讨论】:

        猜你喜欢
        • 2014-11-09
        • 1970-01-01
        • 1970-01-01
        • 2019-03-30
        • 2018-03-03
        • 2019-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多