TouchListener/ OnTouchEvent and multiTouch(多点触控)
2016-05-20 17:44
302 查看
基于监听的TouchListener
方法:
onTouch(View v, MotionEvent event):
这里面的参数依次是触发触摸事件的组件(view),触碰事件event 封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。比如event.getX(),event.getY()
也可以对触摸的动作类型进行判断,使用event.getAction( )再进行判断;如:
event.getAction == MotionEvent.ACTION_DOWN:按下事件
event.getAction == MotionEvent.ACTION_MOVE:移动事件
event.getAction == MotionEvent.ACTION_UP:弹起事件
基于回调的onTouchEvent( )
同样是触碰事件,但是onTouchEvent更多的是用于自定义的view,所有的view类中都重写了该方法,而这种触摸事件是基于回调的,也就是说:如果我们返回的值是false的话,那么事件会继续向外传播,由外面的容器或者Activity进行处理!当然还涉及到了手势(Gesture)
multiTouch(多点操作的方法)
MotionEvent.ACTION_POINTER_DOWN:
当屏幕上已经有一个点被按住,此时再按下其他点时触发。
MotionEvent.ACTION_POINTER_UP:当屏幕上有多个点被按住,松开其中一个点时触发(即非最后一个点被放开时)。
简单的流程:
当我们一个手指触摸屏幕 ——> 触发ACTION_DOWN事件
接着有另一个手指也触摸屏幕 ——> 触发ACTION_POINTER_DOWN事件,如果还有其他手指触摸,继续触发
有一个手指离开屏幕 ——> 触发ACTION_POINTER_UP事件,继续有手指离开,继续触发
当最后一个手指离开屏幕 ——> 触发ACTION_UP事件
而且在整个过程中,ACTION_MOVE事件会一直不停地被触发
(可以通过event.getX(int)或者event.getY(int)来获得不同触摸点的位置: 比如event.getX(0)可以获得第一个接触点的X坐标,event.getX(1)获得第二个接触点的X坐标这样… 另外,我们还可以在调用MotionEvent对象的getPointerCount()方法判断当前有多少个手指在触摸)
方法:
onTouch(View v, MotionEvent event):
这里面的参数依次是触发触摸事件的组件(view),触碰事件event 封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。比如event.getX(),event.getY()
也可以对触摸的动作类型进行判断,使用event.getAction( )再进行判断;如:
event.getAction == MotionEvent.ACTION_DOWN:按下事件
event.getAction == MotionEvent.ACTION_MOVE:移动事件
event.getAction == MotionEvent.ACTION_UP:弹起事件
基于回调的onTouchEvent( )
同样是触碰事件,但是onTouchEvent更多的是用于自定义的view,所有的view类中都重写了该方法,而这种触摸事件是基于回调的,也就是说:如果我们返回的值是false的话,那么事件会继续向外传播,由外面的容器或者Activity进行处理!当然还涉及到了手势(Gesture)
multiTouch(多点操作的方法)
MotionEvent.ACTION_POINTER_DOWN:
当屏幕上已经有一个点被按住,此时再按下其他点时触发。
MotionEvent.ACTION_POINTER_UP:当屏幕上有多个点被按住,松开其中一个点时触发(即非最后一个点被放开时)。
简单的流程:
当我们一个手指触摸屏幕 ——> 触发ACTION_DOWN事件
接着有另一个手指也触摸屏幕 ——> 触发ACTION_POINTER_DOWN事件,如果还有其他手指触摸,继续触发
有一个手指离开屏幕 ——> 触发ACTION_POINTER_UP事件,继续有手指离开,继续触发
当最后一个手指离开屏幕 ——> 触发ACTION_UP事件
而且在整个过程中,ACTION_MOVE事件会一直不停地被触发
(可以通过event.getX(int)或者event.getY(int)来获得不同触摸点的位置: 比如event.getX(0)可以获得第一个接触点的X坐标,event.getX(1)获得第二个接触点的X坐标这样… 另外,我们还可以在调用MotionEvent对象的getPointerCount()方法判断当前有多少个手指在触摸)
相关文章推荐
- ajax对一些没有接口的数据进行分析和添加方法
- 数据库字符集不一样导致函数或存储过程中使用的索引失效
- native修饰符
- 海量数据--在线大数据处理的理论与实践--前言
- python 自定义 包 模块 打包 安装
- 找水王。
- 软件工程-课下作业-搜狗搜索评价
- 那些经典不容错过的520笑话
- 彻底明白Android中AIDL及其使用
- 网络WireShark进行抓包
- 简书上写博客感觉更爽点
- 今天整理下最近这款我负责的app的逻辑原型
- 基于arm的C++反汇编 基本数据类型
- 简书上写博客感觉更爽点
- Mysql 的查询缓存参数介绍与优化思路
- 我常用的正则
- WCF学习系列四--【WCF Interview Questions – Part 4 翻译系列】
- Deploy senlin on VIO
- URL中带加号的处理
- 从零开始学_JavaScript_系列(18)——dojo(7)(dojo中类的继承)