屏幕适配的话题一直存在,由于屏幕的碎片化,导致适配起来都是一件很麻烦的事。这里推荐一个插件,能解决市面上大部分的屏幕适配问题。
我们先下载这个插件 ScreenMatch 接着我们在AS的File-Setting-Plugin-install-plugin from disk中去导入这个插件。
在UI其他资源准备好的时候,这里要讲的是使用 sw<N>dp限定符,即 smallestWidth(最小宽度) 限定符 来进行适配,使用这种方式只需要少量 dimens.xml 文件即可达到适配,而且根本不用考虑虚拟按键的问题。如果只适配手机,dimens.xml 文件所占的体积只有 100 多 KB,即使加上平板和 TV,也就500多KB,完全可以接收。
我们只要在values目录下的dimen文件上写入当前分辨率的一套dimen默认值(命名与值相匹配),
接着在res目录上右键screenMatch,就会生成一套的适配文件出来。
根据设计图填写最小宽度基准值,并填写需要适配的设备最小宽度 dp 值
上面的操作是以插件默认的最小宽度基准值为 360dp,适配的设备最小宽度为
320,360,384,392.7272,400,410,411.4285,432,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365(包含了平板和 TV )生成的文件,但实际情况要根据设计图和需求设置。
例如设计图的最小宽度为 375dp,则需要更改最小宽度基准值为 375dp。如果项目只需要适配手机的话,适配的设备最小宽度保留 320,360,384,392.7272,400,410,411.4285,432,480 即可,若发现手机还有其他最小宽度自行加上即可,也麻烦把该最小宽度提供给我,我们一起来完善该份适配。
以上修改需要在配置文件里修改,即 screenMatch.properties 文件,该配置文件是执行完上面的res目录上右键screenMatch操作后自动生成在项目的跟目录下的。如下图:
打开配置文件,修改下图中 1、2、3的值即可。(图中单位均为 dp)
1:最小宽度基准值,填写设计图的最小宽度值即可。
2:插件默认适配的最小宽度值,即默认情况下会生成如下值的 dimens.xml 文件。
3:需要适配的最小宽度值(如果是小数,则保留4位小数。例如 392.727272...,则取 392.7272),即你想生成哪些 dimens.xml 文件。
4:忽略不需要适配的最小宽度值,即忽略掉插件默认生成的 dimens.xml 文件。
配置修改完之后,再重新右键ScreenMatch下,重新生成最新的dimen文件。
最终在布局写上对应的值,设计图标注多少 dp,布局中就写多少dp,格式为@dimen/dp_XX。 ,编译运行就可以了。如果是代码中写间距这些,可通过转化ScreenUitls去转化,使用这些dimen值就可以了。