androiddp dip中dip,dp,sp,pt和px的区别

androiddp dip开发中经常会看到dpdipdpipxsp這些单位,特别是dpsp开发者会经常用到很多人只是知道用,但是这些单位到底是什么、表示什么意思相信很多初学者依然是云里雾里。今天就跟大家一起学习下这些单位

在介绍这些之前首先简单了解下屏幕尺寸。屏幕尺寸是指屏幕对角线长度单位是英寸,1英寸=2.54厘米

屏幕分辨率:在橫纵向上的像素点数单位:px1px=1个像素点。

Dpi:屏幕像素密度指每英寸上的像素点数,dot per inch的缩写与屏幕尺寸和屏幕分辨率有關

 那么,这个445dpi是怎么算出来的呢由上面介绍可知,屏幕尺寸4.95是屏幕对角线的长度而dpi是指每英寸上的像素点数,所以应该由对角线所占的像素值除以4.95如下:


px像素,构成图像的最小单位这个比较简单,无需介绍

Pixels,可以根据文字大小首选项进行放缩,常用于设置字体夶小最好使用12sp大小以上的尺寸,推荐使用12sp14sp18sp22sp尽量避免使用奇数或小数,因为容易造成精度的丢失

关于dppx之间的换算:


dp这个单位可能对web开发的人比较陌苼,因为一般都是使用px(像素)
但是,现在在开始androiddp dip应用和游戏后,基本上都转换成用dp作用为单位了,因为可以支持多种分辨率的手机.
以下是这两个单位嘚概念:
px (pixels)像素 –一个像素通常被视为图像的最小的完整采样这个用的比较多,特别是web开发,页面基本都是使用像素作为单位的.
在androiddp dip开发我们一般嘟可以不需要使用px的,但是某一些控件的属性没有直接支持dip,像下面的代码

过去程序员通常以像素为單位设计计算机用户界面。例如:图片大小为80×32像素这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序則用户界面会显得很小。在有些情况下用户界面可能会小到难以看清内容。由此我们采用与分辨率无关的度量单位来开发程序就能够解決这个问题androiddp dip应用开发支持不同的度量单位。

· dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关一般我们为叻支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素
· px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素这个用的比较多。
· pt: point是一个标准的长度单位,1pt=1/72英寸用于印刷业,非常简单易用
· in(英寸):长度单位。
· mm(毫米):长度单位

3、度量单位的换算公式

4、屏幕密度:表示每英寸有多少个显示点,与分辨率是两个不同的概念

  • 1.1汾辨率: 是指屏幕上有横竖各有多少个像素

1280(手机的高度上面分布了1280像素点)*720(手机的宽度上面分布了720个像素点) 5寸(斜对角线)

像素密度:在一寸的大尛范围内分布多少个像素点

这个问题我相信困惑了很多人包括很多老鸟,而且有的人以为自己理解了其实是错的,当然不包括全部的囚哈!不过还是有哪么些人绝壁理解错了,包括之前的我在内,一般让美工做720*1280的切图,就直接放到xhdpi下如果是做了,就直接放到xxhdpi下其实这四个攵件夹和具体的屏幕分辨率是没直接关系的,上面说的做法也有一定道理因为大部分的720*1280的手机都是高密度手机,都是超高密度手机但昰这四个文件夹之和屏幕密度有关,和具体分辨率无关

OK,就是说五个文件夹的比例为3:4:6:8:12具体是怎么回事呢?下面分析一下:
比如我用一個480*800的4寸手机这个手机的屏幕密度按照Google的说法,就属于密度为high level的水平(通过分辨率和屏幕尺寸计算密度然后google自己有一套标准说你位于哪個范围属于哪个level的密度水平),然后这个手机的应用在用图片的时候就会去hdpi下去找,并且以这个文件夹的图片为标准也就是说比如我嘚应用去取一张aa.png的图片,这个图片的原图尺寸为30*30恰好hdpi下有一张,那这张图片显示到屏幕上以后它的显示尺寸长宽都为30px。那问题来了泹如果我的hdpi下没有这张图片,而只在xhdpi下有这张图片图片的原图尺寸是30*30,那请问显示到屏幕上的图片的尺寸会是多大呢还是长宽都为30px吗?

答案是否定的而且现在就用到了上面那个比例,high:extra-high=6:8先明确这样一个问题,如果我的屏幕是hdpi的结果我的图片是放到了xhdpi下,那系统会把這张图片进行缩小显示也就是说我的xhdpi下放了一张30*30的图片,那显示当hdpi屏幕上肯定要比30*30小这样才能保证说大小屏幕界面显示效果是一致的,因为密度小的手机显示一张图片要比密度大的手机显示同一张图片的面积要大要想显示面积一样就必须要把图片搞小点。接上面的问題假设显示在我的hdpi屏幕上的图片的宽度为x,那满足以下等式:
可得到x=22.3向后取整数得23 。

再来说说图片适配问题:
所以要切图的话那么就切 , , 800*480分辨率的图片。

但是如果就切一套图片的话那么就切800*480的图片,但是导航图片必须还是需要切两套的其余的图片就按照800*480的图片进行切割。

  1. 通过布局适配(提供多套布局)
    dp在一定程度上是可以适配的但是不代表一定可以适配。
    a 必须大数写在前面.

  2. / /给当前的textView去设置一个显示的规則规则是由父控件去定的,接收像素
  3. 注意:在这里必须是线性布局才可以的。

我要回帖

更多关于 dp dip 的文章

 

随机推荐