安卓:密度独立像素(Density-Independent Pixels)的定义

7

我是一个新手安卓开发者。我了解到DP(密度独立像素),但还是有点困惑。在其中一份定义中,它说:

DP(密度独立像素):基于屏幕密度的抽象单位。在具有160像素/英寸的显示器上,1dp = 1px。

这是否意味着- 160个点 = 1 dp = 1 px(每个点都是1像素,对吗?) 或者 1 dp = 1点(像素)在这160个点中

请澄清一下


1
这个页面应该可以回答你的问题。 - Aprian
2个回答

14

密度无关像素(density-independent pixels)是一种虚拟像素单位,用于定义UI布局,以密度无关的方式表达布局尺寸或位置。

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

px = dp * (dpi / 160)

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

在160dpi的屏幕上,1dp等于1个像素。

参见此博客此答案


0

Android文档中提到:

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

您可以查看支持多个屏幕。 您也可以查看此问题


DOT在每英寸点数中是什么意思?我认为1个dot等于1个像素,这对吗?这一行让我感到困惑-在160 dpi屏幕上,一个物理像素,然而它又说-在240 dpi屏幕上,1 dp将等于1.5个物理像素。为什么这里1 dp会等于1.5个物理像素呢? - Tanvir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接