android 屏幕适配 详解——其实你并不需要这么麻烦

bd“android屏幕适配”会发现全是类似于增加文件夹values-1080x1920文件夹并为每一个px(dp)都写进去的方式,个人是非常鄙视这种方式的(不喜欢的可以关闭了)。

首先千篇一律:没有任何新鲜感。

2.冗余较大:创建的文件太多,杂乱不堪看着都难受。

3.适配性低:这个是最致命的,据统计仅仅是屏幕分辨率的个数就有上千种,你写的那十几个只不过是满足了部分(部分)而已,目前虚拟按键的流行又会出现无虚拟按键是1080*1920,但开启虚拟按键后是1080*1790(各个厂商定制可能还不一样)的情况,要想完全适配没有上万个文件是解决不了问题的

4.正如我简介那样:授之以鱼不如授之以渔。他们都在说就这么写,但却从没说过为什么要这么写

values-1080x1920加载的大致流程:手机分辨率1080*1790,首先查找有没有1790的,没有则寻找最近一个低于1790分辨率的配置直到values的默认文件夹结束(比如:10px在720x1280里面有就会取这个值),如果低分辨率的都没找到(理论上不会)则会崩溃
values-xxhdpi的流程:这是根据像素密度来加载的,先查找xxhdpi如果没有再向上查找,如果高屏幕密度的都没找到则再向下查找,直到匹配一个为止。这个稍微比像素区分稍微好一点点,另外文件也比较少
博主采用的方式:直接写成dp,适配口诀:drawable图片全部自适应,网络图片大的用margin、小的直接写dp,特殊要求根据屏幕来(最好自定义一个img增加属性设置宽高为屏幕宽高比的x%,textview要么match、要么wrap、要么weight)

和ui对照时选择mdpi的比较准确,1像素在mdpi就是1dp

这里要介绍一下dp和px的区别了:
dp:在所有手机上都一样宽(理论上,国内你懂得),dp可以想象成和厘米是一个单位(正常情况下,不考虑放大缩小),可以有小数,具体换算我就不多说了
px:像素点,手机上显示的都是由一个个点来组合出来的,是分辨率的最小单位,没有小数(看到那些小数我就想笑)。并且1080*1920就是横着排列1080个像素点、竖着排列1920个像素点而已

 

普通的app最好在mainfest中配置Activity固定竖屏(参见各大厂商app),奥义都在图内,自己体会吧

android 屏幕适配 详解——其实你并不需要这么麻烦_第1张图片

如果ui和你一个像素点一个像素点的对照,你可以让他把分辨率先找出来,然后必须每个分辨率都弄一套图(既然精确到像素,当然每种分辨率自然不能少?),不然怎么丝毫不差呢。

 

今天给大家展示一下第一次运行android4.4+480分辨率的适配效果和对比(博主主要适配1080)图,如果你运行的布局感觉太大请缩小一下模拟器(480的屏幕都是4寸左右的)。博主也没打算适配480的,看上去整体样式稍微大了一点

你可能感兴趣的:(android教程,不做框架只做UI)