View的draw机制
Posted 安卓笔记侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了View的draw机制相关的知识,希望对你有一定的参考价值。
View:
1、draw
//绘制一个View以及他的子View。最好不要覆写该方法,应该覆写onDraw方法来绘制自己。
public void draw(Canvas canvas);
public void draw(Canvas canvas) { 1、绘制 backgroud(drawBackground) ; 2、如果需要的话,保存canvas的layer,来准备fading ; 3、绘制view的content(onDraw方法); 4、绘制children(dispatchDraw方法); 5、如果需要的话,绘制fading edges,然后还原layer ; 6、绘制装饰器、比如scrollBar(onDrawForeground); }
2、onDraw
//绘制一个View的外观。View的默认实现是空实现,所以这里没有源码给出。
protected void onDraw(Canvas canvas);
ViewGroup:
1、dispatchDraw
/** 绘制子View,View类是空实现,ViewGroup类中有实现 */
protected void dispatchDraw(Canvas canvas);
protected void dispatchDraw(Canvas canvas) { if (需要绘制布局动画) { for (遍历子View) { 绑定布局动画; } 启动动画控制,通知动画开始; } for (遍历子View) { child.draw(); } }
以上是关于View的draw机制的主要内容,如果未能解决你的问题,请参考以下文章
Android View体系从源码解析View的layout和draw流程