上文从源码角度分析了view和viewGroup的measure机制,如果还没有阅读的同志们,可以前往从源码角度分析Android View的绘制机制(一)阅读。下面我再结合linearLayout的measure过程解释以下两个问题的缘由。问题一:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"...
分类:
其他好文 时间:
2015-08-19 17:00:05
阅读次数:
131
在Android的学习道路上,每一个人员都免不了去翻阅Android的源码,因为只有从源码的角度分析问题,我们才能真正的玩转Android开发。最近由于工作比较闲,总想着想写点什么东西,正好自己也可以整理一下。考虑到view的显示机制是自定义view的基础,也是面试中经常被问到的问题,所以记录此文,和大家共享,因水平有限,望大家踊跃拍砖,不胜感激。
有过自定义view的同行们都应该知道,view的...
分类:
移动开发 时间:
2015-08-18 19:24:44
阅读次数:
175
在清楚了View绘制机制中的第一步测量之后,我们继续来了解分析View绘制的第二个过程,那就是布局定位。继续跟踪分析源码,根据之前的流程分析我们知道View的绘制是从RootViewImpl的performTraversals方法开始的,在此方法中依次调用了performMeasure、performLayout、performDraw等方法进行测量、布局、绘制,那么下面我们就看看则方perfor...
分类:
移动开发 时间:
2015-08-17 15:40:54
阅读次数:
136
边看源码边参考别人的博客等,做一下学习笔记。要了解View的绘制,首先得知道View树的结构:(可以参考http://blog.csdn.net/qinjuning/article/details/7226787)整个 View 树的绘图流程在ViewRoot.java类的performTraver...
分类:
移动开发 时间:
2015-08-14 20:55:07
阅读次数:
218
结合View.java的源码,在draw方法中:
public void draw(Canvas canvas) {
/*View的绘制过程分为下面几步:1. Draw the background 绘制背景2. If necessary, save the canvas' layers to prepare for fading 如有必要,颜色渐变淡之前保存画布层(即锁定原有的画布...
分类:
其他好文 时间:
2015-08-10 00:28:53
阅读次数:
118
setNeedsDisplay调用drawRect方法来实现view的绘制setNeedsLayout调用layoutSubView来实现view中subView的重新布局直接调用drawRect和layoutSubView浪费系统资源,而使用setNeedsDisplay和setNeedsLayo...
分类:
其他好文 时间:
2015-08-09 10:35:50
阅读次数:
131
在上篇文章(http://blog.csdn.net/jerehedu/article/details/47081849)中,根据源码探索了View的绘制过程,过程有三个主要步骤,分别为测量、布局、绘制。系统对绘制已经做了很好的封装,我们主要对测量和布局过程进行分析,看一看android是如何对view进行测量和布局的。
根据上篇文章的分析,我们知道在ViewRootImpl的perform...
分类:
移动开发 时间:
2015-08-04 11:17:55
阅读次数:
129
在上篇文章(http://www.cnblogs.com/jerehedu/p/4607599.html#gui)中,根据源码探索了View的绘制过程,过程有三个主要步骤,分别为测量、布局、绘制。系统对绘制已经做了很好的封装,我们主要对测量和布局过程进行分析,看一看android是如何对view.....
分类:
移动开发 时间:
2015-08-04 10:42:20
阅读次数:
193
相信大家在接触Android之初就已经知道了Activity中的setContentView方法的作用了,很明显此方法是用于为Activity填充相应的布局的。那么,Activity是如何将填充的布局绘制出来的呢?实际上Activity将View的绘制与显示交给了Window对象来处理,下面我们通过源码来进行跟踪分析。
Activity的源码如下,只给出我们关注的部分:
public ...
分类:
移动开发 时间:
2015-07-23 15:46:56
阅读次数:
174
Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点。 绘制过程从布局的根节点开始,从根节点开始测量和绘制整个layout tree。 每一个ViewGroup负...
分类:
移动开发 时间:
2015-07-21 10:17:33
阅读次数:
196