关于Android布局优化(一)
2016-03-31 14:14
381 查看
要想优化我们的布局,首先我们要了解Adnroid的UI渲染机制:
把imageView抽出来,这里我宽高都写为0dp,这样在引用时候就必须要设置宽高了。 但是要注意,如果要在< include>标签中覆盖类似源布局中的android:layout_xxxxx属性,就必须在< include>标签中同时指定
android:layout_height和android:layout_width属性。
Android UI渲染机制
在Android中,系统通过VSYNC信号触发对UI的渲染和重绘,时间间隔是16ms。这个16ms就是1000ms中显示60帧的单位时间。这就能解释为什么很多图片处理和画面渲染都以16ms为临界线(比如 高斯模糊处理)。如果在16ms内没有绘制完成,就会造成丢帧现象,等待下次信号到来时候才开始绘制。这就是重复同一个画面,也就是我们看到的画面卡顿现象。优化布局层级减少嵌套
Android每次对View测量绘制的时候都是通过对View树的遍历来进行的。所以,我们要尽量降低View树的高度。新版本的Android默认使用relativelayout作为根布局,因为relativelayout的扁平化可以降低布局的嵌套层数。使用 < include>标签重用Layout
在项目中一般为了保持风格的统一,都会有类似的布局重复出现,比如Topbar。像这样的布局就可以单独抽出来,用的时候用< include>标签来引入。" data-snippet-id="ext.4498cd63b06c2f3194eaaf6d088acc93" data-snippet-saved="false" data-codota-status="done">[code]<?xml version="1.0" encoding="utf-8"?> <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/iv_article" android:layout_height="0dp" android:layout_width="0dp" android:src="@drawable/back"/>
" data-snippet-id="ext.9b3c3d6f45a8b950b8418a5e45d68b00" data-snippet-saved="false" data-codota-status="done">[code]<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@color/top_bar_color" android:layout_height="56dp" android:layout_width="match_parent"> <include layout="@layout/top_bar" android:layout_height="wrap_content" android:layout_width="match_parent"> </RelativeLayout>
把imageView抽出来,这里我宽高都写为0dp,这样在引用时候就必须要设置宽高了。 但是要注意,如果要在< include>标签中覆盖类似源布局中的android:layout_xxxxx属性,就必须在< include>标签中同时指定
android:layout_height和android:layout_width属性。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories