Android学习——View

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengxu_kuangrexintu/article/details/82993406

View类

这个类是用户接口的基础构件。 View 表示屏幕上的一块矩形区域,负责绘制这个区域和事件处理。
View 是所有widget类的基类,Widget 类用于创建交互式UI构件(按钮,输入框等)。
View 类的ViewGroup子类是layout 的基类,Layout是一个不可见的容器,它保存着View(或ViewGroup)并定义这些View的layout 属性。

View类的主要操作

  1. 设置属性:既通过view和其子类的方法设置view的属性, 也可以在xml文件中设置view的属性;
  2. 设置焦点: 通过requestFocus 方法可以强制view获得焦点;
  3. 设置 Listener: 可以通过设置Listener来监听 特定view的事件, 比如获得或失去焦点,点击事件等;
  4. 设置visibility: 可以隐藏或显示view, setVisibility。

View类的属性和位置

IDs: Views 有一个整数相对应,id被用于在View树中找到指定的View。可以在layout文件中定义 一个唯一的ID, 在Activity的onCreate函数中调用findViewById来查找这个View。在整个树内, id可以不是唯一的,但再指定的范围内查找时我们可以确信它是唯一的。

view是一个矩形区域, 使用左&上的坐标以及长和宽可以表示一个View. 我们可以使用方法getLeft()、 getTop()、getRight()、getBottom()、getWidth() 等函数来获取其位置信息。

View的创建

在API中对View的回调流程有详细的描述:

一、Creation:创建流程
1.调用构造器
public View(Context context)//使用Java代码创建View时的构造方法

public View(Context context,AttributeSet atts)//在XML中配置时的构造方法从XML中解析完成后的调用

2.onFinishInflate() //当View和他的所有子View从XML中解析完成后调用。

二、Layout:布局流程
1.onMeasure(int, int) //确定View和它所有的子View要求的尺寸时调用

2.onLayout(boolean, int, int,int, int) //当这个View为其所有的子View指派一个尺寸和位置时调用

3.onSizeChanged(int, int, int,int) //当这个View的尺寸改变后调用

三、Drawing:绘制过程
onDraw(Canvas) //当View给定其内容时调用

四、Event:事件流程
1.onKeyDown(int, KeyEvent) //当一个新的键按下时

2.onKeyUp(int, KeyEvent) //当一个键弹起时

3.onTrackballEvent(MotionEvent) //当滚迹球事件发生时

4.onTouchEvent(MotionEvent) //当一个触摸屏事件发生时

五、Focus:焦点流程、
1.onFocusChanged(boolean, int,Rect) //当View得到和失去焦点时调用

2.onWindowFocusChanged(boolean) //当Window包含的View得到或失去焦点时调用。

猜你喜欢

转载自blog.csdn.net/chengxu_kuangrexintu/article/details/82993406