首页 > 学院 > 开发设计 > 正文

屏幕适配

2019-11-09 15:15:56
字体:
来源:转载
供稿:网友
一.概念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)转换为dp3.适配不同的屏幕根据不同屏幕的dpi,参考相对的换算关系来计算各个屏幕中的尺寸
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表