Android学习笔记之控件架构

来源:互联网 发布:淘宝上便宜的文具店 编辑:程序博客网 时间:2024/05/23 00:03

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 stubmMeasureHeigth = 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哈哈~

1 0
原创粉丝点击