px就是pixels(像素),各种手机的像素是不同的,1px就是表示手机屏幕上的一个物理像素点。一块屏幕的分辨率为240*320,那么就是屏幕宽有240个像素点,屏幕高有320个像素点。如果屏幕大小不变,分辨率提高,那么相应的宽高的像素点变多了,这样画面看起来就更清晰,更细腻。
dp就是dip,device independent pixels(设备独立像素)的缩写,以前经常使用dip,后来为了统一风格建议使用dp形式。dp做为单位的显示效果是跟屏幕的像素密度dpi(dots per inch)有关的,像素密度就是每一英寸有多少个像素点,例如1.5*2英寸屏幕,240*320分辨率的,那么240/1.5=160dpi就是横向像素密度,320/2=160dpi就是纵向像素密度。
由上可以看出来px和dp是不相同的,px为单位时在不同屏幕上显示的物理大小可能不同,而pd为单位时在不同屏幕上显示的物理大小基本相同,看以下分析就知道px和dp的区别了。
(其中,实际长度 = 屏幕长度 / 该方向总像素px * 设置的像素值)
比如:100*100px图片在1.5*2英寸屏幕,240*320分辨率显示效果物理大小为
宽为: 1.5/240*100 = 0.625 英寸
高为: 2/320*100 = 0.625 英寸
图片实际大小就是 0.625*0.625 英寸
100*100px图片在1.5*2英寸屏幕,480*800分辨率显示效果物理大小为
宽为: 1.5/480*100 = 0.3125 英寸
高为: 2/800*100 = 0.3125 英寸
图片实际大小就是 0.3125*0.3125 英寸
(其中以160pdi作为标准,即160pdi时,1px = 1pd;
像素密度pdi = 一个方向总像素px / 屏幕该方向长度;
像素px = 像素密度pdi / 160 * 设置的独立像素pd)
比如:100*100pd图片在1.5*2英寸屏幕,240*320分辨率显示效果物理大小为
宽为: 240/1.5 = 160pdi
160/160*100 = 100px
1.5/240*100 = 0.625 英寸
高为: 320/2 = 160 pdi
160/160*100 = 100px
2/320*100 = 0.625 英寸
图片实际大小就是 0.625*0.625 英寸
100*100pd图片在1.5*2英寸屏幕,480*800分辨率显示效果物理大小为
宽为: 480/1.5 = 320 pdi
320/160*100 = 200px
1.5/480*200 = 0.625 英寸
高为: 800/2 = 400 pdi
400/160*100 = 250px
2/800*250 = 0.625 英寸
图片实际大小就是 0.625*0.625 英寸
其中就可以看px作为单位的效果,同样的一张图,放在同样大小屏幕的手机上,因为分辨率不同,而看起来大小却不同,这是不是很不符合我们的需要呢?为了解决这个问题我们引入使用了pd作为单位。从上也可以看出pd作为单位的效果,同样的一张图,放在同样大小屏幕的手机上,虽然屏幕分辨率不同,但是显示的实际大小却一样,符合我们的设计要求。
sp是字体大小的单位,原理跟dp的相似。
px、dp、sp、dip、dpi名词解释参考以下
http://www.cnblogs.com/wader2011/archive/2011/11/29/2267490.html
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。