Android开发艺术探索——学习笔记_View事件体系

1.0   View基础知识

    每一个APP中用户所看到的任何一个东西都基于View之上,例如显示文字的TextView、一个按钮Button、一个图片ImageView、输入框EditText等等。

1.0.1   什么是View

     View是Android中所有控件的基类(控件继承于View类,所有控件的父类),也可以说View是一种界面层的控件的一种抽象,它代表一个控件。除了View,还有ViewGroup,ViewGroup内部中包含了许多控件,即一组View。

     View和ViewGroup之间的关系,如下图:

1.0.2   View的位置参数

  View的位置主要由它的四个顶点来决定,分别对应于View的四个属性:top,left,right,bottom,其中top是左上角纵坐标,left是左上角横坐标,right是

右下角纵坐标,bottom是右下角横坐标。这些坐标都是相对于View的父容器来说的,因此它是一种相对坐标。


由上图可以得出View的宽高和坐标的关系:

wight = right-left

height = bottom- top

获取这四个参数的方法为:

Left = getLeft();

Top = getTop();

Bottom = getBottom();

Right = getRight();

从Android3.0开始,View增加了额外的一个参数:x、y、translationX和translationY,其中x和y是View左上角的坐标,而translationX和translationY是View左上角相

对于父容器的偏移量。

1.0.2   MotionEvent和TouchSlop

           1. MotionEvent

手指接触屏幕后所产生的一系列事件,典型的事件类型有如下几种:

ACTION_DOWN——手指刚接触屏幕;

ACTION_MOVE——手指在屏幕上移动;

ACTION_UP——手指从屏幕上松开的一瞬间;

正常情况下,一次手指触摸屏幕的行为会触发一系列点击事件,如下几种情况:

点击屏幕后离开松开:事件序列为DOWN >> UP;

点击屏幕滑动一会再松开:事件序列为DOWN >> MOVE >> MOVE >> ... >> UP;

通过MotionEvent我们可以获取得到点击事件发生的x和y的坐标。系统提供了两组方法:getX/getY 获取当前View左上角的x和y坐标, getRawX/getRawY获取

相对于手机屏幕左上角的x和y坐标。

  2.  TouchSlop

TouchSlop是系统所能识别出的被认为是滑动的最小距离,也就是当手指在屏幕上滑动时,如果两次滑动之间的距离小于这个常量,那么系统就不认为你是在

进行滑动操作。获取这个常量的方法为:ViewConfiguration.get(getContext()).getScaledTouchSlop()。我们可以用这个常量做一些滑动时的过滤。





你可能感兴趣的:(android,笔记)