屏幕适配Autolayout的用法

做Android开发,一直会被问及到或者讨论一个问题,关于屏幕适配的做法,如何做才是最好。我们试过按照摆放组件,试过创建不同屏幕对应的资源文件夹,这些或多或少都在一定程度上优化了适配的问题。但是问题也是有的,android的手机屏幕计算尺寸的单位是dp,而一般设计师童鞋标注的尺寸都是px,按照百分比来布局,要去不断的换算对应的关系,而且还依赖父容器。如果按照不同资源文件方式来适配,但是大量的文件夹以及android开源造成的各种想象不到的屏幕尺寸需要去对应,你可能不会疯,我会疯掉的。

后来在同事的介绍下使用了Autolayout,感觉这个轮子在一定程度上是一个神器,它很大程度上的解决了适配的问题。下面记录介绍一下它的使用方法。

原理:就是把你不想做的px和dp换算过程交给这个轮子来计算(原理这东西都是简单的跟一加一等于三一样)

目的:拿到UI设计图,在处理对应的布局文件时,之间按照UI效果图上标注的px尺寸写进xml文件中,通过Autolayout自动达到多屏幕的适配,让你爽歪歪~

用法:

1、引入架包:一种下载Autolayout的开源库,或者在gradle中

dependencies {

compile project(':autolayout')

}

其代码结构如下:

屏幕适配Autolayout的用法_第1张图片

自动适配了FrameLayout、LinearLayout、RelativeLayout等常用容器。

在你的项目的AndroidManifest中注明你的设计稿的尺寸。


屏幕适配Autolayout的用法_第2张图片

2、对应的Antivity继承AutoLayoutActivity,然后就可以开始愉快的玩耍了~


屏幕适配Autolayout的用法_第3张图片


屏幕适配Autolayout的用法_第4张图片
480*800


屏幕适配Autolayout的用法_第5张图片
720*1280

妥妥的~~~~

AutoLayoutActivity的用法实际上是完成了一件事:

LinearLayout -> AutoLinearLayout

RelativeLayout -> AutoRelativeLayout

FrameLayout -> AutoFrameLayout

如果继承AutoLayoutActivity来使用,那么你就得像Google的百分比库一样,去用AutoXXXLayout代替系统原有的XXXLayout。当然,你可以放心的是,所有的系统属性原有的属性都会支持,不过根布局上就不支持px的自动百分比化了,但是一般根布局都是MATCH_PARENT,而上述的方式,根布局也是可以直接px的百分比化的。

需要注意的几个点:

对于listview中getview中的view,因为没有继承AutoLayoutActivity,所以没有办法自动进行适配,所以可以借助其:AutoUtils.autoSize(convertView);方法,来完成适配。

当然了,这个不是最详细的解释说明,因为轮子不是我发明的,我只是一个使用者,写下来也算是对自己掌握知识的一个梳理。比较全面的传送门如下:

http://blog.csdn.net/lmj623565791/article/details/49990941

http://blog.csdn.net/l970859633/article/details/51576534

你可能感兴趣的:(屏幕适配Autolayout的用法)