Android开发之UI布局优化全面总结

来源:互联网 发布:咫尺网络登录 编辑:程序博客网 时间:2024/06/08 19:25

Android开发最常见的问题之一是屏幕碎片化太严重,所以我们在写布局的时候尽量不能适应硬编码去布局。

布局优化在开发过程中起到至关重要的作用。

1.合用weightSum属性和layout_weight属性

通常大家所熟知的只有layout_weight属性,是指按比例占用父容器尺寸,这样做有个默认值是指所有子控件的layout_weight之和为父容器的总值。

但是当我们不需要使用子控件铺满整个父容器的时候,就显得有些不适应了。这时候我们可以给父容器设置weightSum属性,来制定父容器的比例总值。

举个栗子:我们在LinearLayout中只放一个Button,且不管横屏还是竖屏都居中显示,并只占屏幕宽的一半,如下图所示:

图123456


















这时我们可以给LinearLayout设置weightSum = "2" 给子控件Button设置比例为layout_weight = "1"并设置居中。

这两句代码的意思是,设置父容器的总比例为2,子控件的占比为1,即占用空间为1/2,即达到需要的效果。

2.使用 style 主题来定义一个通用的属性,从而重复利用代码,减少代码量。使用 include 标签加载底部菜单栏布局。include 标签的目的是重复利用布局,来减少代码。

3.减少布局嵌套的层次。使用TextView可以设置四个方向图片(android:drawableTop=""等)来直接替代LinerLayout下包裹一个ImageView 和TextView TextView,减少了一层嵌套布局。利用RelativeLayout相对布局减少一层桥套,提高了加载布局的效率。

4.使用 LinearLayoutCompat 组件来实现线性布局元素之间的分割线,从而减少了使用View来实现分割线效果。LinearLayoutCompat的具体内容请参考http://blog.csdn.net/feiduclear_up/article/details/46619637

5.通过减少背景颜色的设置来减少Overdraw的情况。

查看布局是否过度绘制的工具:

01.Hierarchy View:AS 工具栏中点击 Tools–>Android–>Android Device Monitor–>Hierarchy View。

02.显示GPU过度绘制:在手机打开 设置—->开发者选项—->显示GPU过度绘制(绘制的层次从最优到最差:蓝,绿,淡红,红)

03.Android Lint 工具:主要是用来检查工程中代码的不合理,布局不合理,资源重复,图片重复,等,让开发者进一步优化自己的应用。AS 用户打开此工:工具栏 Analyze—>Inspect Code。

6.懒加载布局 ViewStub

通过 setVisibility(View.VISIBLE)或者viewStub.inflate()方来来让其显示,通过setVisibility(View.INVISIBLE)来隐藏 ViewStub。

布局隐藏是是不加载的,只有当用户需要的时候手动点击再让其加载。这样可以在初始下载的时候少加载一些不是很重要的布局,节省资源和时间。

参考:http://www.2cto.com/kf/201506/412711.html

如有纰漏,欢迎留言指正,万分感谢!

原创粉丝点击