前言 上一篇blog中,了解到measure过程对View进行了测量,得到measuredWidth/measuredHeight。对于ViewGroup,则计算出全部children的宽高进行求和。本篇来分析一下layout过程。layout综述 layout方法对一个View及它的后代分配s.....
分类:
移动开发 时间:
2015-08-27 21:08:46
阅读次数:
229
上两篇文章主要讲述了view的measure过程,主要分析了xml文件中控件的height和width设置成不同值的时候,经过测量之后,如何计算出控件的真实高度。所以也就验证了我们经常所说的measure过程就是把match_parent等值转化成在具体设备上的具体的值。
本文主要分析一下layout的过程,同样我们以LinearLayout的layout过程为例。
在ViewR...
分类:
其他好文 时间:
2015-08-19 16:44:06
阅读次数:
121
Android 中View的绘制机制源码分析 三到目前为止,measure过程已经讲解完了,今天开始我们就来学习layout过程,不过在学习layout过程之前,大家有没有发现我换了编辑器,哈哈,终于下定决心从Html编辑器切换为markdown编辑器,这里之所以使用“下定决心”这个词,是因为毕竟Html编辑器使用好几年了,很多习惯都已经养成了,要改变多年的习惯确实不易,相信这也是还有很多人使用Ht...
分类:
移动开发 时间:
2015-07-18 17:09:23
阅读次数:
128
当我们在onCreate()回调方法中去调用View的getWidth()、getHeight()、getTop()、getLeft()等方法的时候,是无法获取到正确值的,此时只会返回0。
为什么呢?
因为View的显示必须经历Measure(测量)、Layout(布局)和Draw(绘制)过程。而在Measure与Layout过程完成之后,View的width、height、top、le...
分类:
其他好文 时间:
2015-04-28 21:06:07
阅读次数:
158
下面是分析ListView初始化的源码流程分析,主要是ListVIew.onLayout过程与普通视图的layout过程完全不同,避免流程交代不清楚,以下是一个流程的思维导图。 思维导图是顺序是从左向右,从上向下。一、 先看构造函数,上图中1.1就不分析了,主要是读取一些ListView参数,直接....
分类:
移动开发 时间:
2015-04-04 10:31:40
阅读次数:
246
每一个View/ViewGroup的显示都会经过三个过程:1、measure过程(测量View显示的大小,位置);2、layout过程(布局view的位置);3、draw过程(上一篇文章说到的通过canvas绘制到界面上显示,形成了各色的View)下面分析一下各个过程:measure过程:因为Dec...
分类:
移动开发 时间:
2014-06-20 15:42:47
阅读次数:
383