先说几个概念
1、屏幕物理尺寸:单位inch 如4.5英寸,为屏幕对角线长度。
2、屏幕分辨率:单位px*px 如1024*768。
3、屏幕密度ppi:单位dpi ,通过勾股定理和上面两个值可以确定屏幕的密度 如160dpi
4、屏幕无关像素:单位dp/dip,这个是虚拟单位,之所以需要它是因为我们希望有这样一个单位,可以在不同密度的屏幕上相对于屏幕的物理尺寸成比例的缩放,给人相近的视觉效果。
dp与px之间的换算关系
规定以密度160为标准,在密度为160的屏幕上 1dp = 1px。其它密度的屏幕都与160想比形成一个系数——scale 如320的系数为scale = 2 1dp =scale*1px。
屏幕根据密度分类:
1、ldpi:0.75 密度为120;
2、mdpi:1.0 密度为160;
3、hdpi:1.5 密度240;
4、xhdpi:2 密度320;
中间的数字是dp与px换算的比值;据说人眼最大可视密度为300ppi。
屏幕适配有几种方式:
1、根据分辨率适配
2、根据密度区分进行适配
3、根据屏幕的宽高(dp)进行适配
完全按照第一种进行适配的工作量会很大,而且肯定有漏掉的,对于不是很复杂的布局第二种就完全可以满足,因此建议的适配方案是以第二种为主,在针对自己的需要添加第一种的适配方案。如:values-land-hdpi-1280×800 ,land为横屏 hdpi为高密度 1280×800为对应的分辨率。
匹配过程中的一些常见字符及意义
1、
根据不同的屏幕分辨率来区分不同的设备,比如一些常见的名字:
QVGA: 240*320 Quarter VGA 四分之一的意思(1/2 * 1/2 = 1/4)
HVGA: 320*480 Half size VGA 的意思 二分之一(1/2 * 1 = 1/2)
VGA: 480*640 远古时代的电脑显示器的分辨率,其他的都是以此为基础来缩放
WVGA: 480*800 Wide VGA
SVGA: 600*800 Super VGA
之间的关系:
ldpi QVGA 240*320 0.8
mdpi HVGA 320*480 1.0
hdpi WVGA 480*800 1.5
hdpi qHD 540*960 1.5
xdpi WXGA 720*1280 2
2、
values-v11代表在API 11+的设备上
values-v14代表在API 14+的设备上
如同时存在上面两个文件夹,则选择规则是这样的——API 11,12,13选择values-v11;大于14的选择values-v14
3、
第一种后缀:sw
这里的sw代表smallwidth的意思,当你所有屏幕的最小宽度都大于600dp时,屏幕就会自动到
带sw600dp后缀的资源文件里去寻找相关资源文件,这里的最小宽度是指屏幕宽高的较小值>,每个屏幕都是固定的,不会随着屏幕横向纵向改变而改变。
第二种后缀w
带这样后缀的资源文件的资源文件制定了屏幕宽度的大于Ndp的情况下使用该资源文件,但>它和sw
第三种后缀h
这个后缀的使用方式和w
后的高度值来判断是否使用h
建议尽量少使用这种方式。