【问题标题】:android the definition density-independent pixelsandroid定义与密度无关的像素
【发布时间】:2012-09-01 05:09:27
【问题描述】:

我是安卓新手。我读过关于 DP 但我仍然感到困惑。在一个定义中,它说—— dp(与密度无关的像素):基于屏幕密度的抽象单位。在每英寸 160 点的显​​示器上,1dp = 1px。

这是否意味着 - 160 点 = 1 dp = 1 像素(每个点是 1 像素,对吗?) OR 1 dp = 160 个点中的 1 个点(像素)

请澄清

【问题讨论】:

  • this 应该回答你的问题

标签: android


【解决方案1】:

与密度无关的像素是定义 UI 布局时应使用的虚拟像素单位,以与密度无关的方式表示布局尺寸或位置。

与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。在运行时,系统会根据使用中屏幕的实际密度,根据需要透明地处理 dp 单位的任何缩放。 dp 单位到屏幕像素的转换很简单:

px = dp * (dpi / 160)

例如,在 240 dpi 的屏幕上,1 dp 等于 1.5 个物理像素。在定义应用程序的 UI 时,您应该始终使用 dp 单位,以确保您的 UI 在不同密度的屏幕上正确显示。

对于 160 dpi 的屏幕,1 dp 等于 1 px。

请参阅this 博客和this 答案。

【讨论】:

    【解决方案2】:

    android 文档说 -

    与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是平台假定的基线密度(如本文档后面所述)。在运行时,平台会根据使用的屏幕的实际密度透明地处理所需的 dp 单位的任何缩放。 dp 单位到屏幕像素的转换很简单:像素 = dps * (密度 / 160)。例如,在 240 dpi 屏幕上,1 dp 等于 1.5 个物理像素。强烈建议使用 dp 单位来定义应用程序的 UI,以确保您的 UI 在不同屏幕上正确显示。

    您可以查看supporting multiple screens。你也可以看看这个question

    【讨论】:

    • 什么是每英寸点的点数,我假设 1 点 = 1 像素,对吗?这条线让我感到困惑——160 dpi 屏幕上的一个物理像素,而它再次说——在 240 dpi 屏幕上,1 dp 等于 1.5 个物理像素。在这里 1 dp 怎么会等于 1.5 个物理像素..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 2013-09-09
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多