2012-09-01 32 views
7

我是android新手。我读到关于DP但是m仍然困惑。在一个定义中,它表示 - dp(密度独立像素):基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。android定义密度独立像素

它均值160点= 1个DP = 1个的160点之中PX(每个点为1个像素,对吗?) OR 1 DP = 1点(像素)

普莱斯澄清

+1

[this](http://stackoverflow.com/q/2025282/1465828)应该回答你的问题 – Aprian

回答

14

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

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

px = dp * (dpi/160)

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

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

参考this博客和this答案。

0

android文档说 -

与密度无关的像素相当于160 dpi屏幕上的一个物理像素,即平台假定的基准密度(如本文后面所述)。在运行时,平台根据所使用屏幕的实际密度,透明地处理所需dp单位的任何缩放比例。将dp单位转换为屏幕像素很简单:像素= dps *(密度/ 160)。例如,在240 dpi屏幕上,1 dp将等于1.5个物理像素。强烈建议使用dp单位来定义应用程序的用户界面,以此来确保在不同屏幕上正确显示您的用户界面。您可以查看supporting multiple screens。你也可以看看这个question

+0

什么是每英寸点数DOT,我假设1点= 1像素,是不是?这条线让我感到困惑 - 160 dpi屏幕上的一个物理像素鉴于它再次说明 - 在240 dpi屏幕上,1 dp将等于1.5个物理像素。 怎么来1DP将等于1.5物理像素在这里.. – Tanvir