寸阳分阴须爱惜,休负春色与时光。这篇文章主要讲述Android布局优化思考相关的知识,希望能为你提供帮助。
一、关于RelativeLayout和LinearLayout的使用
由源码可以知道,RelativeLayout需要对其子View进行两次measure过程,而LinearLayout只需一次measure过程,我们知道,onMeasure的耗时越长效率就越低,但是如果LinearLayout中有weight属性,也需要进行两次measure,即便如此,仍然会比RelativeLayout的情况好一些。
总体原则:减少布局层次,加快渲染速度。
当线性布局和相对布局均可以实现时,优先使用线性布局LinearLayout,如果使用的是相对布局RelativeLayout,尽量避免RelativeLayout嵌套RelativeLayout,并且尽量使用padding代替margin。
二、<
include />
的使用
<
include />
标签可以在一个布局中引用另外一个布局,实现布局重用。比如共同的标题栏(title.xml),只要加上如下代码即可重用。
<
include layout=“@layout/title” />
【Android布局优化思考】三、<
merge />
的使用
<
merge />
标签可以减少视图的层级结构。比如说,如果主布局是线性布局,include进来的也是线性布局,这时候include进来的线性布局就是多余的,可以用merge标签代替(重用布局的父布局使用merge),仍使用include引入布局。
四、ViewStub的使用
ViewStub是一个轻量级的View,宽高均为0,实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才进行加载。比如提醒框的使用。
五、Space控件的使用
Space控件占据一定的空间,但是不显示任何东西,可用于行间隔。
六、TextView的使用
TextView可同时显示文字和图片;TextView的属性lineSpacingExtra可设置行间距。
七、LinearLayout线性布局
LinearLayout的属性divider可设置分割线,相关属性:dividerPadding、showDividers。
推荐阅读
- Android 应用开发-从设计到实现 3-2 前期准备
- Android 之XML数据解析—— SAX解析
- Android应用进程启动过程(前篇)
- android 解决小米手机上选择照片路径为null情况
- OpenGL播放yuv数据流(着色器SHADER)-android
- Android逆向从未如此简单
- 在ANDROID STUDIO环境下使用JUNIT框架进行单元测试
- 随风而行(Android运动提示)
- Android性能检测工具