1, dp和px之间的换算公式
dp和px的换算公式 :dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。dp也就是dip:device independent pixels(设备独立像素)。dp是一种与密度无关的像素单位,在每英寸160点的屏幕上,1dp = 1px。px(像素):屏幕上的点。
2, px,dp和sp,这些单位有什么区别
px:即像素,1px代表屏幕上一个物理的像素点;px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模糊。dp:这个是最常用但也最难理解的尺寸单位。它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度。假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。不同的手机/平板可能具有不同的像素密度,例如同为4寸手机,有480x320分辨率的也有800x480分辨率的,前者的像素密度就比较低。Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80x1.5=120px,在320dpi的手机上实际显示为80x2=160px。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,这就是使用dp作为单位的效果,dip:与dp完全相同,只是名字不同而已。在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp这个名字了。sp:与缩放无关的抽象像素(Scale-independent Pixel)。sp和dp很类似但唯一的区别是,Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。还有几个比较少用到的尺寸单位:mm:即毫米;in:即英寸,1英寸=2.54厘米(约);pt:1pt=1/72英寸=0.035厘米;最佳实践,文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。例如textSize="16sp"、layout_width="60dp";偶尔需要使用px单位,例如需要在屏幕上画一条细的分隔线时:<View layout_width="match_parent" layout_height="1px"/>
4, px,dp,dip,dpi,sp 等到底有什么联系区别
每次遇到这个问题我都要好好想一遍,看了很多遍,有时还是会搞不清楚。强加记忆。px is one pixel.sp is scale-independent pixels.dip is Density-independent pixels.You would usesp for font sizesdip for everything else, where dip == dppxPixels - corresponds to actual pixels on the screen.inInches - based on the physical size of the screen.1 Inch = 2.54 centimetersmmMillimeters - based on the physical size of the screen.ptPoints - 1/72 of an inch based on the physical size of the screen.dpDensity-independent Pixels - an abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi screen, so one dp is one pixel on a 160 dpi screen. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Note: The compiler accepts both "dip" and "dp", though "dp" is more consistent with "sp".spScale-independent Pixels - this is like the dp unit, but it is also scaled by the user"s font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and user"s preference.dp: Density-independent Pixels一个抽象的单元,基于屏幕的物理密度。(dp和dip的意义相同,所以不用区别对待)。这些单元是相对于160dpi(dots per inch)的屏幕说的,在160dpi的屏幕上,1dp粗略地等于1px。当运行在更高密度的屏幕上的时候,要绘制1dp的像素数量会放大一个比例,这个比例就是和屏幕密度(dpi)相关。类似的,在一个低密度的屏幕上,像素数目会缩小一个比例。dp到px的这个比例将会随着屏幕的密度变化,而不是直接的比例关系。用dp单位,而不是px,是一种简单的屏幕密度适配解决方式。换句话说,它提供了一种方式,可以在多种设备上维持真实尺寸一致性。sp:Scale-independent Pixels这个有点像dp单位,但是它也根据用户的字体设置(font preference)缩放尺寸。建议用这种尺寸单位来标注字体尺寸,这样它们将会因为屏幕密度和用户设定而调整。ptPoints 1/72 inch(英寸),根据屏幕的物理尺寸。px: Pixels相应于真实的像素。这种单位不被建议,因为真实的表达会根据设备的不同相差很远。每个设备上每英寸的像素数不同(密度不同),并且屏幕上总的像素数也不同(整体大小不同)。
名词解释
像素
像素(pixel)是影像显示的基本单位。在整个图像中,可以将像素看做以一个颜色单一并且不能再分割成更小元素或单位的小格,单位面积内的像素越多代表分辨率越高,所显示的影像就越清晰。
dp
DisplayPort也是一种高清数字显示接口标准,这种接口可以为PC、监视器、显示面板、投影仪、以及高分辨率内容应用提供多种不同的连接解决方案。DisplayPort整合了内外连接方式,并为交叉领域的应用提供了关键的性能支持。此外,还为强化下一代显示器的特性,如颜色深度、刷新率、分辨率以及其他先进应用提供了性能上的升级。与消费电子领域内的HDCP类似,DisplayPort也可以通过128位AES加密实现对HD视频数据的拷贝保护。DisplayPort还提供应用支持功能,最高可达10Gbps单向连接通道处理能力,从而可满足计算机产业的长期需求,支持大于QXGA 分辨率以及超过24位的颜色深度。
英寸
英寸(inch)是使用于英国及其前殖民地(包含美国、加拿大、澳大利亚)和英联邦的长度单位。 一般为1in=2.54cm,在英制里,12英寸为1英尺,36英寸为1码。