美文网首页玖富钱包分享专题
屏幕适配Autolayout的用法

屏幕适配Autolayout的用法

作者: AnonyPer | 来源:发表于2017-04-09 21:17 被阅读32次

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

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

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

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

    用法:

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

    dependencies {

    compile project(':autolayout')

    }

    其代码结构如下:

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

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

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

    480*800 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

    相关文章

      网友评论

      • AnonyPer:就喜欢自己瞎说的样子~:smile:

      本文标题:屏幕适配Autolayout的用法

      本文链接:https://www.haomeiwen.com/subject/tzcjattx.html