invalidate函数android,Android中View绘制流程以及invalidate()等相关方法分析

requestLayout()方法

说明 :对View树重新布局layout过程,draw()过程,但不会重新绘制任何视图包括该调用者本身。

一般引起invalidate()操作的函数如下:

1、setVisibility()方法 :

当View的可视状态在INVISIBLE / VISIBLE 转换为 GONE状态时,会间接调用requestLayout() 和invalidate方法。同时,

由于整个个View树大小发生了变化,会请求measure()过程以及draw()过程,同样地,只绘制需要“重新绘制”的视图。

requestFocus()函数说明:

说明:请求View树的draw()过程,但只绘制“需要重绘”的视图。

下面写个简单的小Demo吧,主要目的是给大家演示绘图的过程以及每个流程里该做的一些功能。截图如下 :

07f1a07a095fbbcb2a4fad0195f91079.gif

1、    MyViewGroup.java  自定义ViewGroup类型

packagecom.qin.customviewgroup;

importAndroid.content.Context;

importandroid.graphics.Canvas;

importandroid.util.AttributeSet;

importandroid.util.Log;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.Button;

importandroid.widget.ImageView;

importandroid.widget.TextView;

/**

* @author http://http://blog.csdn.net/qinjuning

*/

//自定义ViewGroup 对象

publicclassMyViewGroupextendsViewGroup{

privatestaticString TAG ="MyViewGroup";

privateContext mContext ;

publicMyViewGroup(Context context) {

super(context);

mContext = context ;

init() ;

}

<


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部