Android View的绘制过程
来源:互联网 发布:数据侠客行txt网盘 编辑:程序博客网 时间:2024/05/21 20:25
简而言之,Android view的绘制过程包含三个过程:
OnMeasure( )OnLayout( )OnDraw( )
其中,OnMeasure( )负责确定view本身所占的空间和大小(这里的大小指长和宽)。
OnLayout( )过程确定view在其父view中的具体位置,并且根据具体位置来调整view的最终绘制大小。
OnDraw( )则负责将view在canvas中绘制出来。
如图:
下面对这三个过程进行一个简单的描述。
- onMeasure(),任何一个view在绘制之前都必须知道自己的长和宽是多少,view的绘制流程开始于viewRoot的 performTraversals()方法。在这个方法内部,又会调用view的measure()方法。measure方法会接收两个参数,widthMeasureSpec和heighMeasureSpec。若该view对象为viewgroup类型,需要重写OnMeasure()方法,对其子视图进行遍历的measure()过程。
- onLayout()的主要作用是根据子视图的大小及布局参数将view树放到合适的位置上。具体的调用链如下,layout方法会放置该view视图位于父视图的坐标轴,即mLeft,mTop,mLeft,mBottom,接下来回调onLayout()方法(若该view是viewgroup对象,需要实现该方法,对每个子视图进行布局)。
- draw()绘图过程。 由viewRoot对象的perform Traversals()方法调用draw()方法发起绘制该view树,值得注意的是每次发起绘图时候,并不需要重新绘制每个view的视图,只需绘制那些“需要重绘”的视图,用标志位来控制(DRAWN)
这三个流程中,google已经帮我们将draw()过程框架写好了,自定义的viewGroup只需实现Measure()过程和layout()过程即可。
阅读全文
0 0
- android view的绘制过程
- Android View的绘制过程
- Android view的绘制过程
- android绘制view的过程
- Android View的绘制过程
- Android View绘制过程
- Android View绘制过程
- Android View绘制过程
- Android View绘制过程
- Android View绘制过程
- Android View绘制过程
- Android View绘制过程
- android view 绘制过程
- Android View 绘制过程
- Android View绘制过程
- .android view绘制过程
- Android View绘制过程
- Android View绘制过程
- matlab并行运算方法
- 数字图像处理——用Java对图像做镜像变换
- docker
- 制作多周期CPU(代码)
- JavaWeb学习随笔(一) id name property相关,以及一般项目的流程
- Android View的绘制过程
- 智能一代云平台(二十四):已安装的Nginx上安装echo
- MQ在分布式系统中的应用于协作
- 避免死锁的进阶指导
- 安装Abaqus6.13+VS2012+Fortran后,Abaqus卡顿解决办法
- MySQL 远程连接
- iOS崩溃crash大解析
- jQuery选择器
- 简单布局