View和ViewGroup

来源:互联网 发布:淘宝账号贷款秒批 编辑:程序博客网 时间:2024/05/22 08:17

View和ViewGroup

Android的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而 ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的。View对象是Android平台中用户界面体现的基础单位。View类是它称为“widgets(工具)”的子类的基础,它们提供了诸如文本输入框和按钮之类的UI对象的完整实现。ViewGroup类同样为其被称为“Layouts(布局)”的子类奠定了基础,它们提供了象流式布局、表格布局以及相对布局之类的布局架构。一般来说,开发Android应用程序的UI界面都不会直接使用View和ViewGroup,而是使用这两大基类的派生类。

View和ViewGroup最重要的几个方法:
1.protected void onDraw(Canvas canvas):View类中用于重绘的方法,这个方法是所有View、ViewGroup及其派生类都具有的方法,也是Android UI绘制最重要的方法。开发者可重载该方法,并在重载的方法内部基于参数canvas绘制自己的各种图形、图像效果。
2.protected void onLayout(boolean changed, int left, int top, int right, int bottom):View类中布局发生改变时会调用的方法,这个方法是所有View、ViewGroup及其派生类都具有的方法,重载该类可以在布局发生改变时作定制处理,这在实现一些特效时非常有用。
3.protected void dispatchDraw(Canvas canvas):ViewGroup类及其派生类具有的方法,这个方法主要用于控制子View的绘制分发,重载该方法可改变子View的绘制,进而实现一些复杂的视效,典型的例子可参见Launcher模块Workspace的dispatchDraw重载。
4.protected boolean drawChild(Canvas canvas, View child, long drawingTime)):ViewGroup类及其派生类具有的方法,这个方法直接控制绘制某局具体的子view,重载该方法可控制具体某个具体子View。
5.addView方法这个方法是用来想View容器中添加组件用的。我们可以使用这个方法想这个ViewGroup中添加组件。
6.getChildAt方法 这个方法用来返回指定位置的View。
注意:ViewGroup中的View是从0开始计数的。

View在屏幕上显示出来要先经过measure(计算)和layout(布局).
  onMeasure(int, int) View会调用此方法,来确认自己及所有子对象的大小
  onLayout(boolean, int, int, int, int, int, int) 当View要为所有子对象分配大小和位置时,调用此方法
  onSizeChanged(int, int, int, int) 当View大小改变时,调用此方法
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

原创粉丝点击