MotionEvent机制(触屏)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > MotionEvent机制(触屏)

MotionEvent机制(触屏)

 2017/3/7 5:33:46  ganchuanpu  程序员俱乐部  我要评论(0)
  • 摘要:Android是如何响应对其中的某个视图的触控操作呢?MotionEvent机制(触屏)1.最基本的操作类型:down:手指按下move:手指在屏幕上移动up:手指从屏幕上离开2.触屏操作的顺序:down?move?move?…?up3.触摸事件的分发与处理事件产生的顺序为:down-->move-->move...--->up事件对象被系统创建后,首先会调用对应Activity对象的dispatchTouchEvent()进行分发down在分发给视图对象的过程中要确定消费者
  • 标签:

Android是如何响应对其中的某个视图的触控操作呢?

MotionEvent机制(触屏)

1.最基本的操作类型:
  down : 手指按下
  move : 手指在屏幕上移动
  up : 手指从屏幕上离开

 

2.触屏操作的顺序: 
  down?move?move?…?up

 

3.触摸事件的分发与处理

  事件产生的顺序为: down-->move-->move...--->up

  事件对象被系统创建后, 首先会调用对应Activity对象的dispatchTouchEvent()进行分发

  down在分发给视图对象的过程中要确定消费者(onTouchEvent()返回true),如果都返回false, 那事件的消费者只能是Activity了

  后面的move和up事件, 将事件分发给消费者(可能是视图对象,也可能是Activity)处理, 如果视图不消费, 直接交给Activity处理消费

  每个事件都需要有一个消费者

 

4.相关API

1. MotionEvent : 触屏事件
  int ACTION_DOWN=0 : 代表down
  Int ACTION_MOVE=2 ; 代表move
  Int ACTION_UP=1 : 代表up
  getAction() :  得到事件类型值
  getX() : 得到事件发生的x轴坐标(相对于当前视图)
  getRawX() :得到事件发生的x轴坐标(相对于屏幕左顶点)
  getY() : 得到事件发生的y轴坐标(相对于当前视图)
  getRawY() :得到事件发生的y轴坐标(相对于屏幕左顶点)

2. Activity
  boolean dispatchTouchEvent(MotionEvent event) : 分发事件
  boolean onTouchEvent(MotionEvent event) : 处理事件的回调

3. View
  boolean dispatchTouchEvent(MotionEvent event) : 分发事件
  boolean onTouchEvent(MotionEvent event) : 处理事件的回调方法
  void setOnTouchListener(OnTouchListener l) : 设置事件监听
  void setOnClickListener(OnClickListener l) : 设置点击监听
  void setOnLongClickListener(OnLongClickListener l) : 设置长按监听
  void setOnCreateContextMenuListener(OnCreateContextMenuListener l) : 用于创建菜单
4. ViewGroup
  boolean dispatchTouchEvent(MotionEvent ev) : 分发事件
  boolean onInterceptTouchEvent(MotionEvent ev) : 拦截事件的回调方法

  • 相关文章
发表评论
用户名: 匿名