Android学习(4) 屏幕适配

基本概念

1.像素
像素的单位是px(pixel),1px代表屏幕上一个物理的像素点
2.屏幕尺寸
屏幕尺寸指屏幕的对角线长度,单位是英寸(inch),1inch = 2.54cm
3.屏幕分辨率
屏幕分辨率是指在横纵面上的像素点个数,单位是px,1px是一个像素点,一般的表示是 纵向像素数×横向像素数,如1920×1080
4.屏幕像素密度
屏幕像素密度(PPI,Pixels Per Inch)表示的是每英寸所拥有的像素数量,单位是dpi(dot per inch)。PPI数值越高,即代表显示屏能够以越高的密度显示图像。显示的密度越高,拟真度就越高。
例如在1920×1080分辨率,5英寸的屏幕下,其屏幕像素密度的值即sqr(1920×1920 + 1080×1080)/ 5(dpi)
5.密度无关像素
密度无关像素的单位是dip或dp,这两个单位符号都是Density Independent Pixels的缩写。其计算公式为:1dip = (屏幕像素密度/160dpi)×1px
如在屏幕像素密度为160dpi的情况下,1dip = 1px;
在屏幕像素密度为320dpi的情况下,1dip = 2px。
6.缩放无关像素
缩放无关像素的单位是sp,是Scale Independent Pixel的缩写。它用于设置字体的大小。

对于不同尺寸、分辨率的手机的适配方案

可根据dpi的范围表格,针对不同的屏幕给出不同的设置

等级 范围 比例
mdpi 120dpi - 160dpi 2
hdpi 160dpi - 240dpi 2
xhdpi 240dpi - 320dpi 2
xxhdpi 320dpi - 480dpi 2
xxxhdpi 480dpi - 640dpi 2

屏幕适配

屏幕适配可分为:布局适配和图片适配
1.布局适配
①禁用绝对布局
②少用px,若用px应利用屏幕像素密度进行计算,如图Android学习(4) 屏幕适配_第1张图片
同样是120px,在不同的分辨率下其大小不同,为更好的适配屏幕,进行计算后做边的120px在右边的为175px
③使用warp_contentmatch_parent0dp
(1)wrap_content
这是包裹控件的一种方式,它将先按照内容多少设定控件大小,然后再按权重的比例来分配剩余空间。若用该种方法,在控件内容较多时,将无视权重。(注:权重即 layout_weight)
(2)match_parent
这是匹配父容器大小的一种方式,它的控件大小计算方式如公式:
控件大小 = 父容器大小 + 权重比例 × 剩余空间大小
如下图示例Android学习(4) 屏幕适配_第2张图片
Android学习(4) 屏幕适配_第3张图片
可能你会奇怪,红色的权重为1,蓝色的权重为2,看上去反而像是红色的权重为2,蓝色的权重为1。其实,它们的大小在match_parent下按照公式是这样计算出来的:
红色部分大小 = 1match_paren + 1/3 ×(1match_paren - 2match_parent)=2/3 match_parent
蓝色部分大小 = 1match_paren + 2/3 ×(1match_paren - 2match_parent)=1/3 match_parent
在此,关键在于对公式中剩余空间大小的理解。由此得出来的控件大小与空间内容无关。
(3)0dp
这种方法指的是将控件大小设置为0dp,而后控件的大小将根据权重按照比例进行分配,此种方式没有 wrap_content 受控件内容影响的烦恼,也没有 match_parent 繁琐烧脑计算的困惑,控件大小将直接按照你所设定的权重比例进行空间分配。

2.图片适配
①提供不同分辨率的备用图
如上表格所示
②使用自动拉伸图
在导入的png格式图片右键弹出的菜单中,选择Create 9-Patch file… ,可生产 *.9.png格式,该格式图片双击后可进行划区编辑

你可能感兴趣的:(Android)