(转)dp和dip是同一个单位

原文地址:http://blog.csdn.net/chenyufei1013/article/details/8363619

  • 摘要

本文介绍了android单位dp,dip的概念,并给出了它的确切含义。

  • 概述

Android中,dp是Density-independent Pixels简写,而dip则是Density Independent Pixels,实际上指的是一个概念,都是Android的单位。在文档More Resource Types中有描述:

dp
        Density-independent Pixels - An abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi (dots per inch) screen, on which 1dp is roughly equal to 1px. When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen‘s dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Using dp units (instead of px units) is a simple solution to making the view dimensions in your layout resize properly for different screen densities. In other words, it provides consistency for the real-world sizes of your UI elements across different devices.

单位px代表的是像素,它和ds的转换公式在文档Supporting Multiple Screens中也有描述:

Density-independent pixel (dp)

A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way.

The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp units when defining your application‘s UI, to ensure proper display of your UI on screens with different densities.

公式

[cpp] view plaincopy

  1. px = dp * (dpi / 160)

说明1dp代表了多少个px,下面我们简单的推导一下这个公式。

首先,dpi是Dots Per Inch的缩写(wiki),表示一英寸内有多少个点,对于UI界面而言,这个点就是像素(Pixel)。

然后,我们看一下dp的单位:

[plain] view plaincopy

  1. 像素 = dp的单位 * 像素/英寸

可以看出dp的单位是长度单位英寸,上面dp的定义的最后一句话说明了这一点:In other words, it provides consistency for the real-world sizes of your UI elements across different devices.

最后,我们看一下1dp的值有多大。1dp对应dpi/160个像素,根据dpi的定义,每个像素的长度为1/dpi英寸,合在一起就是1dp=1/160英寸。

[cpp] view plaincopy

  1. 1dp的长度 = 1 * dpi / 160 * 1 / dpi 英寸 = 1 / 160 英寸
  • 结论

dp等同于dip,它是一个长度单位,1dp=1/160英寸。

dp这个单位的意义在于:你可以根据看到的实际大小,在应用中设置对应的dp值,而使得不同的设备上看起来一样大。

时间: 2025-01-13 08:01:06

(转)dp和dip是同一个单位的相关文章

android中dx、dp、dip、sp单位的区别

1.dp=dip 2.px基于像素,后两者基于像素密度. 3.px既可用于宽度高度,也可用于字体,dp用于宽高,sp用于字体4.android中以320*480屏幕为基准.在相同值的px和dp,在320*480屏幕上显示效果一样,但更换屏幕后不同, px还和320*480上的大小一样,dp会自动根据比例适配屏幕5.同理sp和dp一样也能自动适配. ----->开发中,宽高用dp或dip,字体用sp

Android屏幕分辨率概念(dp、dip、dpi、sp、px)

1.屏幕尺寸(screen size)就是我们平常讲的手机屏幕大小,是屏幕的对角线长度,一般讲的大小单位都是英寸.比如iPhone5S的屏幕尺寸是4英寸.Samsung Note3是5.7英寸. 2.像素(pixel)想像把屏幕放大再放大,对!看到的那一个个小点或者小方块就是像素了. 3.分辨率(Resolution)是指屏幕上垂直方向和水平方向上的像素个数.比如iPhone5S的分辨率是1136*640:Samsung Note3的分辨率是1920*1080: 4.dpi是dot per in

我所知道px、dpi、dp、dip、sp、in、pt之间的差别

px: 即像素,1px代表屏幕上一个物理的像素点: px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同 dpi: 是dot per inch的缩写,就是每英寸的像素数,也叫做屏幕密度.这个值越大,屏幕就越清晰. 假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密

安卓的显示单位dp、dip、px、sp

dp==dip:设备独立像素 .(device independent pixels) dip是年迈的dp,已经退休,在比较老的代码中还可以看到dip.目前谷歌推荐用dp,在我们开发安卓程序的时候,除了字体之外,都推(强)荐(制)使用dp. sp:比例像素.(scaled pixels ) sp一般用于处理字体.安卓有个东西叫做大字体,那玩意就是专门调整sp的.所以所有关于字体的单位,推(强)荐(制)使用sp. px:像素(pixels) px即手机上面的物理点,属于物理范畴的,所以在写安卓程序

android应用开发之View的大小计量单位(px、dpi、dp、dip、sp)

http://blog.csdn.net/ljianhui/article/details/43601495?ref=myread 一.像素(px)与屏幕分辨率 1)px(Pixels ,像素):对应屏幕上的实际像素点.例如,320*480的屏幕在横向有320个象素,在纵向有480个象素. 2)屏幕分辨率就是在屏幕上显示的物理像素总和,它等于屏幕的宽度上的像素*高度上的像素.在Android应用程序的开发上,不会使用屏幕分辨率. 3)屏幕分辨率虽然是宽*高,但是它与屏幕的大小没有关系,它与一个屏

px、dp和sp,这些单位有什么区别?

信每个Android新手都会遇到这个问题,希望这篇帖子能让你不再纠结. px: 即像素,1px代表屏幕上一个物理的像素点: px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示(图片来自android developer guide,下同). 偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模糊. dp: 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度.假设有一部手机,屏幕的

[Android问答] px、dp和sp,这些单位有什么区别?

相信每个Android新手都会遇到这个问题,希望这篇帖子能让你不再纠结. px: 即像素,1px代表屏幕上一个物理的像素点: px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示(图片来自android developer guide,下同). 偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模糊. dp: 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度.假设有一部手机,屏幕

dp\dpi\px\pt\em单位长度理解

屏幕都有固定的物理长宽度属性和分辨率 比如电脑.比如手机屏幕 例如有手机屏幕尺寸是1.5英寸x2英寸,屏幕分辨率为240x320, 那么可以推算水平方向每英寸的像素数(dpi)是:240/1.5=160,同样可以推算出竖直方向每英寸像素数 1px就是指屏幕上的一个像素点:屏幕成像原理是通过屏幕上密布的像素点成像: 因此,当我们的屏幕的dpi不同,10px的长度将会在屏幕上显示不同物理长度: android规定了4种四种像素密度:低(120dpi).中(160dpi).高(240dpi)和超高(3

设计师给了px单位的标注,Android开发到底要设置多少dip、dp、sp?

本文链接    http://blog.csdn.net/xiaodongrush/article/details/29560431 1. 要开发一款Android APP,设计师和开发要约定哪些事情? 首先,选择一款主流机型. 然后,设计师根据该机型的屏幕尺寸设计效果图,给出px单位的标注. 最后,开发根据该机型,可以算出px与dp的换算方法,根据px单位的标注,设置为dp为单位的标注. 备注:1dp=1dip=1sp,对于一般长宽dp或者dip都可以,sp是字体专用单位,在操作系统中设置大中