Android UI优化—常用UI优化技巧

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangguangchao/article/details/85065782

<include>标签

<include>标签可以将一个指定的布局加载到当前布局中,增加布局的重用,在布局中的使用方法如下:

<Linearlayout 
            android:layout_width="fill_parent"                              
            android:layout_height="wrap_content" > 
            <include layout="@layout/otherlayout"> 
 </Linearlayout > 

注意点:

1、只支持android:layout_开头的属性(id属性例外)
2、如果包含的布局文件的根元素也指定了id属性,则以<include>指定的为准
3、android:layout_width和android:layout_height必须存在,否则其他android:layout_*形式的属性无法生效

<merge>标签

<merge>标签主要用来进行UI布局层次优化的,可以删除多余的层级。使用方法如下:
在这里插入图片描述
注意点:
1、多和<include>标签使用
2、<merge>标签仅仅能作为XML布局的根标签使用
3、当Inflate以<merge>标签开头的布局文件时,必须指定一个父ViewGroup,而且必须设定attachToRoot为true

<ViewStub>标签

<ViewStub>简介
1、java代码中的ViewStub类继承自View
2、宽/高都为0,本身不参与任何的布局和绘制
3、相当于一个占位符,可以做到按需加载(延迟加载)

xml布局中使用如下:

在这里插入图片描述
<ViewStub>标签的按需加载
方式一:

( (ViewStub) findViewById(R.id.viewstub1)).setVisibility(View.VISIBLE);

方式二:

 View stubView = ((ViewStub) findViewById(R.id.viewstub1)).inflate();

其他UI优化技巧

1、减少View的onDraw()中的复杂性,不在里面进行内存分配
2、尽量使用有参的invalidate()方法
3、尽量利用系统自带的资源
……

猜你喜欢

转载自blog.csdn.net/jiangguangchao/article/details/85065782