android values适配中 文件夹加载策略解析
来源:互联网 发布:php 蜘蛛记录 编辑:程序博客网 时间:2024/05/17 22:10
项目中使用到了多个values来进行适配的问题,想从根本上弄清楚系统在加载的时候,对文件夹取用策略的判断问题,用实际例子对比了一下swXXXdp与values-1920X1080和默认的values的加载其中的策略指定问题,混合模式下,系统对values的取用问题。
ok,开始吧。
添加values-1790X1080,values-1794X1076,values-1794X1080与values-sw361dp
前三个文件夹用来对比在跟屏幕真实分辨率相差一些数值的时候,系统会加载那个文件夹下的配置。
先用三个文件夹运行,观察结果:
当然是运行的完美契合的那个分辨率了,那么当我们在实际开发的时候,屏幕碎片化太大的时候,这种情况是可遇不可求的,故而需要去测试系统对与不完美契合的情况的处理,删除掉完美契合文件夹:
运行结果是:
加载到了1920X1148的values,那么说明在 1916X1152 与 1920X1148两个相近的宽高差值相同的文件夹中选择了高来进行优先选择,但是不能排除系统是把第一参数进行对比,而不是将values的匹配高进行优先匹配的,好吧,下面验证一下:
改名为:
运行结果:
加载的还是高匹配高的那个文件夹,那么结论:系统对不能完美匹配的values文件,遵循的是,宽高差值绝对值进行对比,如果宽高对于当前屏幕分辨率差值小的进行加载,如果当宽高绝对值差值相同的时候,以高匹配度高的values进行加载。
上面对比了在使用px来区分values的一些加载规则,那么当swXXXdp出现的时候,(sw----small width)小宽度概念,当系统的宽度dp值大于该值的时候,加载这套设置。
问题在于dp与px方式同时出现的时候,系统对于优先级的判定问题。下面进行判定:
加入混合的值文件夹:
运行结果:
google还是对dp情有独钟啊,1152/3= 384dp跟360还差那么多,要是在一个水平线上来进行对比的话,真真的应该加载1920X1152啊,完美适配的呢,说好的做彼此的天屎的,呸,天屎,算了。
但是不管google怎么优先级,从细分上来说,如果是为了适配smartbar这个坑的话,一般来说,用px的values-1920X1152方式来进行细分适配要更加的精确,更能完美处理掉这个问题,毕竟还是在同一个水平上来处理的。但是官方是推sw-XXXdp的。
综上所述:
values-swXXXdp > values-XXXXxXXXX > values ;
注: values-XXXXXxXXXXX 方式的时候,通过宽高跟屏幕分辨率的差值绝对值来进行对比,优先高。
好吧,可能有人在等源码,我一起放上来吧
传送门
- android values适配中 文件夹加载策略解析
- android values文件夹使用
- android values文件夹
- android 加载values优先级
- android values-v11和values-v14文件夹是干啥的?
- android values-v11和values-v14文件夹是干啥的?
- android res文件夹下面的 values-v11 、 values-v14
- values文件夹
- Android各国语言Values文件夹命名规则
- Android各国语言Values文件夹命名规则
- android国际化(values对应文件夹)
- Android 系统搜寻values文件夹的顺序
- Android各国语言Values文件夹命名规则
- Android Values文件夹各国语言命名规则
- Android各国语言Values文件夹命名规则
- Android values文件夹适配屏幕
- Android多语言适配values文件夹命名
- Android中多国语言对应values文件夹命名
- unity学习——单例模式
- xlwt写入单元格,xlrd读出单元格
- C#最佳工具集合:IDE、分析、自动化工具等
- Spark学习笔记2
- Loki::CyclicVisitor
- android values适配中 文件夹加载策略解析
- 侧拉菜单
- 使用geotools和jts进行GIS数据生成
- Effective Java中文第二章第2节(个人渣翻)
- 站长总结用过的虚拟主机,VPS,用过服务器,网站管理系统有哪些
- android产品研发与用户需求、体验
- 你的云主机
- 201312-2ISBN号码
- C/C++错误笔记之“注册表AutoAdminLogon读取失败”