您的位置:首页 > 运维架构 > 网站架构

Android学习笔记之控件架构

2016-04-03 14:53 357 查看
Android中控件大概分为两类,ViewGroupView。

ViewGroup父控件,管理包含多个View控件。通过ViewGroup形成控件树。

上层控件负责下层控件的测量和绘制,并统一调度交互事件。

View的测量,即告诉系统画一个多大的View,在onMeasure()中进行。

MeasureSpec类,帮助我们测量View,32位测量值,高2位为测量模式,底30位为测量大小。

用位运行模式为了提高效率。

测量模式分三种:

1,EXACTLY:精确模式,指定控件具体大小,系统默认也是这种模式。

2,AT_MOST:最大值模式,控件尺寸不超过某个值。

3,UNSPECIFIED:想多大就多大,通常情况下,绘制自定义View时用。

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
mMeasureHeigth = MeasureSpec.getSize(heightMeasureSpec);
mMeasureWidth = MeasureSpec.getSize(widthMeasureSpec);
setMeasuredDimension(mMeasureWidth, mMeasureHeigth);
initView();
}


View的绘制:onDraw()方法,通过Canvas对象进行绘图。

ViewGroup的测量:当为wrap_content时,对子View进行历遍获取所以子View大小,决定自己大小。其他模式则通过具体值。

ViewGroup的绘制:通常不需要,但会调用dispatchDraw()方法来绘制子View。

自定义View:

1.对现有控件进行扩展

2.通过组合来实现新控件

3.重写View来实现全新控件

详细在下一篇文章。O(∩_∩)O哈哈~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: