什么是View
View这个类代表用户界面组件的基本构建块。View在屏幕上占据一个矩形区域,并负责绘制和事件处理。View是用于创建交互式用户界面组件(按钮、文本等)的基础类。它的子类ViewGroup是所有布局的父类,它是一个可以包含其他view或者viewGroup并定义它们的布局属性的看不见的容器。
View的方法
View类中包含众多的方法,这里挑出一些比较常用的方法分类介绍。
构造方法
View的构造方法一共有四个,其中常用的有下面三个:
View(Context context)
在java代码中直接new一个View实例的时候,会调用此构造函数.
View(Context context, AttributeSet attrs)
在布局文件中使用View时会调用此构造函数,AttributeSet 是View的xml属性
View(Context context, AttributeSet attrs, int defStyleAttr)
主动调用,当需要用到自定义属性时在前两个方法中调用此方法。
布局
onFinishInflate()
当View和他的所有子控件被XML布局文件填充完成时被调用。(这个方法里面可以完成一些初始化,比如初始化子控件)。
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
当决定View和它的子View的尺寸需求时被调用(也就是测量控件大小时调用),widthMeasureSpec和heightMeasureSpec是由尺寸和模式组合而成的一个值,用来描述父控件对子控件尺寸的约束。将widthMeasureSpec和heightMeasureSpec值传入MeasureSpec类的getMode和getSize方法就能分别获得View宽高的模式和具体尺寸。
onLayout(boolean changed, int left, int top, int right, int bottom)
当View给他的子View分配大小和位置的时候调用(摆放子控件)
onSizeChanged(int w, int h, int oldw, int oldh)
当view尺寸发生变化时调用
绘制
onDraw(Canvas canvas)
在视图上绘制所要呈现的内容时调用
事件处理
onKeyDown(int keyCode, KeyEvent event)
按下按键时调用,keyCode是按键编号,KeyEvent是按键事件
onKeyUp(int keyCode, KeyEvent event)
抬起按键时调用
onTouchEvent(MotionEvent event)
触摸屏幕时调用,MotionEvent是捕捉到的触摸事件
焦点
onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)
获取到或者失去焦点时调用
onWindowFocusChanged(boolean hasWindowFocus)
窗口获取或者失去焦点时调用
Attaching
onAttachedToWindow()
当视图被连接到一个窗口时调用
onDetachedFromWindow()
当视图从窗口分离时调用
onWindowVisibilityChanged(int)```
当View的窗口的可见性发生改变时调用
网友评论