边看源码边参考别人的博客等,做一下学习笔记。要了解View的绘制,首先得知道View树的结构:(可以参考http://blog.csdn.net/qinjuning/article/details/7226787)整个 View 树的绘图流程在ViewRoot.java类的performTraver...
分类:
移动开发 时间:
2015-08-14 20:55:07
阅读次数:
218
在 android 中,焦点的获取和事件差不多,有一个分发机制,一般来说View 树上的上层节点 ViewGroup 比 View 更有优先级获取焦点,这体现在 ViewGroup 可以有一个属性 descendantFocusability 用来控制焦点获取的优先级。...
分类:
其他好文 时间:
2015-07-26 11:08:46
阅读次数:
168
前言: 本文是我读《Android内核剖析》第13章----View工作原理总结而成的,在此膜拜下作者。同时真挚地向渴望了解 Android 框架层的网友,推荐这本书,希望你们能够在Android开发里学到更多的知识 。 整个View树的绘图流程是在ViewRoot.java类的per...
分类:
移动开发 时间:
2015-07-24 17:31:18
阅读次数:
173
标签用于减少View树的层次来优化Android的布局新建项目,不需要改动运行后使用“DDMS -> Dump View Hierarchy for UI Automator”工具,得到结果最下面两层RelativeLayout与TextView就是activity_main.xml布局中的内容,上...
分类:
其他好文 时间:
2015-07-16 15:40:29
阅读次数:
204
整个View树的绘图流程是在ViewRootImpl类的performTraversals()方法(这个方法巨长)开始的,该函数做的执行过程主要是根据之前设置的状态,判断是否重新计算视图大小(measure)、是否重新放置视图的位置(layout)、以及是否重绘 (draw),其核心也就是通过判断来选择顺序执行这三个方法中哪个。...
分类:
移动开发 时间:
2015-05-31 16:53:19
阅读次数:
226
1、View和ViewRoot
ViewRoot从名称上来理解似乎是“View树的根”,这很容易让人产生误解。因为ViewRoot并不属于View树的一份子。从源码实现上来看,ViewRoot和View对象并没有任何“血缘”关系,它既非View的子类,也非View的父类。ViewRoot可以被理解为“View树的管理者”——它有一个mView成员变量,指向的是它所管理的View树的根。
咱们...
分类:
移动开发 时间:
2015-05-17 23:40:05
阅读次数:
329
整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为:
- 判断是否需要重新计算视图大小(measure)
- 判断是否重新需要安置视图的位置(layout)
- 判断是否需要重绘(draw)...
分类:
移动开发 时间:
2015-05-03 20:43:17
阅读次数:
222
转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章>中,我们 了解了View树的转换过程以及如何设置View的LayoutParams的。本文继续沿着既定轨迹继续未完成的job。 主要知识点如下: 1、MeasureSpc类说明 ...
分类:
移动开发 时间:
2015-04-26 14:59:40
阅读次数:
212
我们已经有文章向你描述如何使用标签来重用和共享你的布局代码。这篇文章将向你阐述标签的使用以及如何与标签互补使用。标签用于减少View树的层次来优化Android的布局。通过看一个例子,你就能很容易的理解这个标签能解决的问题。下面的XML布局显示一个图片,并且有一个标题位于其上方。这个结构相当的简单;...
分类:
其他好文 时间:
2015-04-22 00:23:38
阅读次数:
201
Android UI工具包提供了一些布局管理器,它们使用起来相当容易,而且,大多数的时候,你只需要使用它们最基本的特征来实现UI。执着于基本特征的使用对于创建UI来说,往往不是最高效的。一个常见的例子就是滥用LinearLayout,它将会导致View树中的View数量激增。View——更糟的是,布...
分类:
其他好文 时间:
2015-04-22 00:17:43
阅读次数:
130