一直以来对这个屏幕适配就比较含糊,今天,公司突然给安排了个任务要从原来的 1024 * 768的屏幕,适配到1280 * 800的屏幕,瞬间就蒙圈了,然后找了点资料,明白了点。。。#####
** 总结了几点屏幕适配的要点: **
权重适配
在开发过程中,对于布局文件中的大布局,我们尽量用权重去适配。使用dip(dp)
对于有具体大小要求的布局,我们要用dip(密度无关像素),文字用sp。-
单独设置res文件夹下的各个文件的不同匹配参数(这里总结了3种情况)
2.3版本以后,google为了更精确的惊醒屏幕适配
我们以value文件夹为例,为其创建不同分辨率的文件夹
*这里的dp数值,都是以160dp为基准的,比如 2560 * 1600 320dip的屏幕,我们就得把他除以2,得到相对于160dip的分辨率,即1280 * 800,即w1280dp而不是w2560dp *
1. value-sw800dp
sw的意思是smallwidth,最小宽度(这个宽度是不会变的,就是手机无论横屏竖屏,始终选取的最小的宽度),当sw >= 800dp 的时候,android会自动选去sw800dp文件夹下的配置文件。
** 但是 **
相对的油sh,最小高度,,这个是会根据手机的横纵向而切换的,也就是说会改变的,作用跟sw一样,google不建议使用sw和sh只能配置一个,应为只能有一个最小么~~~ 2. value-w800dp 这个跟sw意思差不多,只不过没有最小的意思了,而是一个范围取之,当我们屏幕的宽度到达800的时候,就会采用这个文件夹下的参数。 既然没有最小s,所以我们可以定义各种分辨率的文件夹,例如w800dp,w1200dp,w1280dp,等,当屏幕分辨率打到改置,就会采用该文件下的参数了。 3. 以上都是对于文字(或者说是距离)上的适配,对于图片的适配呢? 对于图片来说,因为UI给我切的图,肯定是固定分辨率的,我们无法改变,一般的,屏幕分辨率越大,密度也就越大,于是当屏幕分辨率很大的时候,图片就会被缩小,显得比例不合适,当屏幕分辨率很小时,图片却被放大,显得模糊,对于这种情况,google给出的方案是,根据不同的分辨率切不同大小的图,一般的,我们活适当的切两套或者三套图,分辨率从低到高,放到drawable文件夹下,这里给出一个google大概的drawable取值范围,最后对应的是图标的缩放(如果你放错文件夹,就按照这个比例缩放图片): drawable-mdpi 120dp~160dp 48px * 48px drawable-hdpi 160dp~240dp 72px * 72px drawable-xhdpi 240dp~320dp 96px * 96px drawable-xxhdpi 320dp~480dp 144px * 144px drawable-xxxhdpi 480dp~640dp 192px * 192px 比例为: mdpi :hdpi :xhdpi :xxhdpi :xxxhdpi = 2 :3 :4 :6 :8