概述
记录一下之前用过的适配方案,主要是记录一下smallestWidth限定符适配的文件生成
想看详细适配原理请看下面的文章
现在市面上主流的适配就两种头条适配和smallestWidth适配,今天先记录smallestWidth适配,这种的适配方式现在用的人还是很多,而且也在自己的项目中使用过了很多次了。
适配原理
屏幕分辨率限定符适配和smallesWidth限定符适配原理上是一样的,都是系统根据限定符去寻找对应的dimens.xml
,比如程序运行在最小宽度为 960dp的设备上,那么系统就会根据限定符去寻找对应的values-sw960
文件夹下的dimens.xml
。
区别:
- 屏幕分辨率限定符是根据px的值来做的等比缩放
- 最小宽度限定符是根据 dp的值来做的等比缩放
值得注意的是 “最小宽度” 不分方向,无论是宽度还是高度,哪一方小哪个就是“最小宽度”
smallesWidth的优点
- 非常稳定,出现意外的概率极低
- 不会有任何性能的消耗
- 适配范围可自由控制,不会影响其他三方库
- 使用插件高效生成文件,学习成本低
ScreenMatch的使用
在AndroidStudio中安装插件ScreenMatch
安装完成后,在左边目录中右击,选择“ScreenMatch”
选择我们需要在哪个Moudle下生成文件,我这里选择的是主app的moudle
选择完成后会在project中生成两个文件,第一个文件是设置一些ScreenMatch的一些属性,比如基础的dip、适配哪些屏幕、忽略哪个屏幕等等
第二个是为我们准备好的dimens.xml,我们将
screenMatch_example_dimens.xml
复制到app的res/values文件夹下并改名为dimens.xml最后我们再去右击目录然后选择ScreenMatch,这时候就会生成我们需要适配的dimens.xml文件了
注:这里生成的文件夹和
screenMatch.properties
文件中match_dp
和ignore_dp
这两个属性有关。我这只设置了适配match_dp=320,360,720,960,1024,1280,1365
和 忽略了ignore_dp=240,384,392,400,410,411,480,533,592,600,640,662,768,800,811,820,961