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吧,主要目的是给大家演示绘图的过程以及每个流程里该做的一些功能。截图如下 :

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