屏幕适配

来源:互联网 发布:手机淘宝怎么发布帖子 编辑:程序博客网 时间:2024/06/14 02:31
一.概念
px :即像素(单位),1px代表屏幕上一个物理的像素点;
dpi:点密度,是Dots Per Inch的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。
ppi:pixels per inch ,像素密度。
注:因为手机屏幕基本上dpi和ppi相同所以,经常用dpi来作为像素密度用,其实手机在型号参数给的都是ppi。(参考http://blog.sina.com.cn/s/blog_454316880100zgwz.html更好理解)
dp:device independent pixels(设备独立像素);建议使用它来自动适配不同的屏幕。


二.px和dp的换算
px = dip * dpi / 160


三.使用
开发中都会使用dp,原因:
与密度无关的像素,这是一个基于屏幕物理密度的抽象单位。密度可以理解为每英寸包含的像素个数(单位是dpi),
1dp实际上相当于密度为160dpi的屏上的一个点(可否理解为物理尺寸?)。也就是说,如果屏幕物理密度是160dpi时,
dp和px是等效的。现在用实际的手机屏幕说一下。一块拥有320*480分辨率的手机屏幕,如果宽度是2英寸,高度是3英寸,
这块屏幕的密度就是160dpi。如果屏幕大小未变,而分辨率发生了变化,例如,分辨率由320*480变成了480*800,
这时屏幕的物理密度就变大了(大于160dpi)。这就意味着屏幕每英寸可以显示更多的像素点,屏幕的显示效果就更细腻了。
假设一个按钮的宽度使用dp作为单位,在160dpi时设为160,而在更高的dpi下(如320dpi),按钮的宽度看上去和160dpi时的屏幕一样。
这是由于系统在发现屏幕的密度不是160dpi时,会计算一个转换比例,然后用这个比例与实际尺寸相乘就得出新的尺寸。
计算比例的方法是目标屏幕的密度除以160.如果目标屏幕的密度是320dpi,那么这个比例就是2。如果按钮的宽度是160dp,
那么在320dpi的屏幕上的宽度就是320个像素点(dp是抽象单位,在实际的屏幕上应转换成像素点)。从这一点可以看出,
dp可以自适应屏幕的密度。不管屏幕密度怎样变化,只要屏幕的物理尺寸不变,实际显示的尺寸就不会变化。如果将按钮的宽度设成160px,
那么在320dpi的屏幕上仍然会是160个像素点,看上去按钮的宽度只是160dpi屏幕的一半。Android官方建议弃置表示宽度,高度,
位置等属性时应尽量使用dp作为尺寸单位。 


实际开发中;
1.看切图基于那块屏幕(一般都是720*1280;4.5英寸)
2.根据dpi和切图中标注的尺寸(px)转换为dp
3.适配不同的屏幕根据不同屏幕的dpi,参考相对的换算关系来计算各个屏幕中的尺寸
0 0
原创粉丝点击