文/腾讯优测工程师  吴宇焕


腾讯优测优社区干货精选~

相信开发同学都被安卓设备碎片化的问题折磨过,市面上安卓手机的主流屏幕尺寸种类繁多,给适配造成很大的困难。就算搞定了屏幕尺寸问题,各种分辨率又让人眼花缭乱,当你走出了前面所说的两大坑,很有可能又掉进“屏幕长宽比不同”的陷阱。。。

说多了都是泪,我就想做一名安静的开发怎么这么难?

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_android

经历过无数次跌跌撞撞,我总结出一些经验,想与大家一起分享。
已知的屏幕适配方法:
(1)按像素比:y/开发时用的屏幕像素=x/用户设备像素
(2)按长度:用dip(假设屏幕尺寸基本不变)
(3)按密度:放在l、m、h文件夹(假设屏幕尺寸基本不变,dpi越大 PX越大)


而Android 5.0 Google官方推出了百分比布局支持库,意在解决大部分屏幕适配的问题。下面我就向大家详细介绍一下:
1、Google百分比布局支持库
(1)支持的布局

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_适配_02

(2)支持的属性

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_腾讯_03

(3)使用方法
1、加载android-support-percent-lib
dependencies {
    compile 'com.android.support:percent:22.2.0'
}
2、PercentRelativeLayout

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_适配_04

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_android_05

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_适配_06

3、PercentFrameLayout

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_腾讯_07

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_适配_08


实现原理

(1)View绘制过程
整个View树的绘图流程是在ViewRootImpl类的performTraversals()方法中,整个流程的大致流程图如下:

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_android_09

(2)android-support-percent实现过程


根据view的绘制过程,通过阅读百分比布局库源码,绘制流程如下:

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_适配_10

今天对于Google百分比布局支持库就先说这么多,后续如果还有新的经验会及时与大家分享。最后说一句,想更有效、更放心的解决Android屏幕适配问题,多多体验腾讯优测,千余款真机等你来测!

腾讯优测| 让Android屏幕适配开发更简单-Google百分比布_适配_11

兴趣可以马上加官群勾搭客服妹妹哦~


优测官方群:214483489