数据显示Android Fragmentation:Android 碎片化得到业界持续不断的关注和攻克。
正常情况下,我们明确目标需要适配哪些屏幕:Android 主流分辨率查询,我们在写 UI 的时候一般会拿到一份 iOS 750*1334 的设计稿,下面对常见的各种适配方案优缺点进行下分析:
- Google 官方提出dp ,sp,match_parent,wrap_content,weight 的方法虽然可以解决屏幕大小和像素之间的对应关系。但是如果如果对于控件在屏幕中的位置却不能很好的解决
注:
- px = density * dp;
- density = dpi / 160;
- px = dp * (dpi / 160);
-
张鸿洋的基于设计稿生成对应比例的思想和前端适配百分比的思路是一脉想成的,即分别拿屏幕当前宽度和高度除以设计稿的宽度和高度从而相当于将屏幕划分成一个网格坐标。这样一来既保证了不同屏幕下像素对应关系,也可以控制控件的位置。但是在实际操作过程中会发生如资源文件不匹配当前屏幕,或者屏幕的比例与设计稿的比例不一致,从而导致控件变形。
-
针对张鸿洋提出的解决方案在实际中遇到的问题,我们是这样解决的:
-
将比列关系全部映射成一个维度,保证这一个维度,也就保证资源不会发生变形的情况
-
做一套默认适配的情况
-
-
今日头条等一系列方案实际是在代码中将宽高映射到一个维度,然后通过宽高限定符的方式匹配屏幕尺寸。