要学好android触控,了解 MotionEvent是必要,对所用的MotionEvent常用的API要比较深入的了解。

android.view.MotionEvent

MotionEvent事件对象

一般我们是在View的onTouchEvent方法中处理MotionEvent对象的。

public boolean onTouchEvent(MotionEvent event)

在这里我们需要从一个MotionEvent对象中获得哪些信息呢?

(1)首先应该是事件的类型吧?
可以通过 event.getAction(),在android2.2之后加入多点触控支持之后使用getActionMasked()方法.

这两个方法的区别见后文.

主要的事件类型有四种:

ACTION_DOWN: 表示用户开始触摸.

ACTION_MOVE: 表示用户在移动(手指或者其他)

ACTION_UP:表示用户抬起了手指

ACTION_CANCEL:表示手势被取消了,一些关于这个事件类型的讨论

还有一个不常见的:

ACTION_OUTSIDE: 表示用户触碰超出了正常的UI边界.

但是对于多点触控的支持,Android加入了以下一些事件类型。来处理,如另外有手指按下了,

有的手指抬起来了。等等:

ACTION_POINTER_DOWN:有一个非主要的手指按下了.

ACTION_POINTER_UP:一个非主要的手指抬起来了

(2)事件发生的位置,x,y轴

getX() 获得事件发生时,触摸的中间区域在屏幕的X轴。

getY() 获得事件发生时,触摸的中间区域在屏幕的Y轴。

在多点触控中还可以通过:

getX(int pointerIndex) ,来获得对应手指事件的发生位置. 获得Y轴用getY(int pointerIndex)

(3)其他属性

getEdgeFlags():当事件类型是ActionDown时可以通过此方法获得,手指触控开始的边界. 如果是的话,有如下几种值:EDGE_LEFT,EDGE_TOP,EDGE_RIGHT,EDGE_BOTTOM


更多相关文章

  1. Android(安卓)GestureDetector滑动监听事件
  2. android中三种onClick事件的实现,与对比
  3. Android游戏开发系列教程第三讲(事件处理)
  4. 【安卓笔记】touch事件的分发和消费机制
  5. android 很多应用中用到的 listView + viewPager
  6. Android(安卓)how to check screen off 判断屏幕是开还是关。
  7. [置顶] Android(安卓)怎么退出整个应用程序?__以及__按键事件捕获
  8. Android中的引导页,一个Activity搞定引导页
  9. android 为 ListView Item中的组件添加事件 以及更新数据

随机推荐

  1. ListView中的CheckedTextView 多选/单
  2. 快应用 QuickApp:配置开发环境 和 第一个
  3. Android智能识别 - 银行卡区域裁剪(原理篇
  4. Android(安卓)Studio 插件开发入门
  5. Android内存优化:用注解的方式替代枚举
  6. android ndk jni层访问java对象小结
  7. android实用技巧:android实现listview异步
  8. android Room数据库了解
  9. Android(安卓)4.0为Launcher主界面所有应
  10. android实现TextView、ImageView等按压效