1. View 树的绘图流程
当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw 。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,该函数所做
的工作可简单概况为是否需要重新计算视图大小(measure)、是...
分类:
移动开发 时间:
2015-04-02 11:41:25
阅读次数:
225
ViewStub就是一个轻量级的View,它在布局文件中以标签的形式存在,在acitivity加载布局的时候并不会实例化这个View,而是当在代码中调用ViewStub的inflate()方法的时候才会实例化这个View。
定义一个ViewStub
ViewStub是一个轻量级的View,它没有大小,也不会执行任何的绘制。所以inflate它和把它放在view树中是非常划算的。每一个ViewS...
分类:
其他好文 时间:
2015-04-01 17:50:53
阅读次数:
146
转自:http://www.uml.org.cn/mobiledev/201211221.asp今天,我着重讲解下如下三个内容:measure过程WRAP_CONTENT、MATCH_PARENT/FILL_PARENT属性的原理说明xml布局文件解析成View树的流程分析。希望对大家能有帮助。- ...
分类:
移动开发 时间:
2015-02-26 18:24:16
阅读次数:
367
此文版权属于作者所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意!
class YouClass extends View
{
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibil...
分类:
移动开发 时间:
2015-01-12 19:23:01
阅读次数:
263
1.findViewById()是View对象的方法,先通过inflate()方法得到View,调用这个View对象的getViewById()方法,就能得到这个View树上的子View。
2.inflate()函数可以通过getSystemService()方法得到,参数是LAYOUT_INFLATER_SERVICE。
3.inflate()函数的第一个参数是布局文件的R引用,第二...
分类:
其他好文 时间:
2014-10-22 10:07:31
阅读次数:
176
转载:http://blog.csdn.net/qinjuning前言: 本文是读《Android内核剖析》第13章----View工作原理总结而成的。 整个View树的绘图流程是在View...
分类:
移动开发 时间:
2014-09-24 13:35:46
阅读次数:
296
整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘(draw),其框架过程如下:me...
分类:
移动开发 时间:
2014-09-09 12:09:38
阅读次数:
307
当创建复杂的布局的时候,有时候会发现添加了很多的ViewGroup和View。随之而来的问题是View树的层次越来越深,应用也变的越来越慢,因为UI渲染是非常耗时的。这时候就应该进行布局优化了。这里介绍两种方式,分别为标签和ViewStub类。使用是为了避免代码的重复。设想一种情况,我们需要为app中的每个视图都添加一个footer,这个footer是一个显示app名字的TextView。通常多个...
分类:
移动开发 时间:
2014-09-04 01:43:17
阅读次数:
223
小白:之前分享了ViewStub标签的使用,Android还有其他优化布局的方式吗?
小黑:标签用于减少View树的层次来优化Android的布局。先来用个例子演示一下:
首先主需要一个配置文件activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"...
分类:
移动开发 时间:
2014-07-10 17:22:31
阅读次数:
272
当创建复杂布局的时候,我们会在xml 文件中添加大量的ViewGroup和View。伴随着每次迭代,View树的层次越来越深,界面加载速度越来越慢,消耗的内存也越来越多。当您的程序出现加载时短暂黑屏或横竖切换时短暂黑屏,抑或如内存溢出(OOM)之类的问题时,没准您的程序需要优化了。 那么如何让程.....
分类:
移动开发 时间:
2014-07-03 11:47:13
阅读次数:
326