要适配不同的屏幕,首要需要的是要能够将不同的屏幕分辨出来,,
上图所示为常用的一些维度,不过不是全部,全部的维度可以在官方的列表中查找。
图中从左到右按照箭头指示方向的优先级依次降低(查找匹配资源的时候会用到优先级),同时在对
以下分别来介绍各个维度:
1
2
适配流程:当多个目录都使用了该限定词的时候,匹配原则为不大于可用宽度的最大值。即如果屏幕最短边为
3、availablewidth(
4、screenSize
5、屏幕方向,这个是最简单的,横向纵向
6、Screendensity
适配流程:优先从当前屏幕密度匹配的目录查找,如果没有则不断向上层查找(倾向于将大图片缩小,而不是小图片放大),如果上层没有则向下层查找,如果都没有,才取默认的目录,定位到特定目录后,会根据定位到的目录与当前屏幕密度的比例关系进行缩放操作。
7、分辨率(
8、Platformversion:参见ApiLevels。适配顺序也是从高到低
Android资源匹配流程:
Bestpractice:
1、为不同的屏幕尺寸及方向提供不同的
2、为不同的屏幕密度
3、提供默认资源防止crash
4、修改某个目录下的值的时候,确认其上层是否有配置该参数值,如果有,则可以直接修改;如果没有,则要将本层的值复制到上层之后再来修改本层的值
Android官方:
https://developer.android.com/guide/topics/resources/providing-resources.html
https://developer.android.com/guide/practices/screens_support.html
有的事情现在不做,就一辈子也不会做了。