触摸事件MotionEvent在用户交互中,占着非常重要的地位.首先,来看看MotionEvent中封装的一些常用的事件常量,它定义了触摸事件的不同类型.

  1.单点触摸按下动作

  public static final int ACTION_DOWN = 0;

  2.单点触摸抬起动作

  public static final int ACTION_UP = 1;

  3.触摸点移动动作

  public static final int ACTION_MOVE = 2;

  4.触摸动作取消

  public static final int ACTION_CANCEL = 3;

  5.触摸动作超出边界

  public static final int ACTION_OUTSIDE = 4;

  6.多点触摸按下动作

  public static final int ACTION_POINTER_DOWN = 5;

  7.多点离开动作

  public static final int ACTION_POINTER_UP = 6;

  通常情况下,我们会在onTouchEvent(MotionEvent event)方法中通过event.getAction()方法来获取触摸事件的类型,并使用switch-case方法来进行筛选,这个代码的模式基本固定,如下

  @Override

  public boolean onTouchEvent(MotionEvent event) {

    //获取当前输入点的X . Y坐标(视图坐标)

    int X = (int) event.getX();

    int Y = (int) event.getY();

    switch(event.getAction()) {

      case MotionEvent.ACTION_DOWN:

      //处理按下事件

      break;

      case MotionEvent.ACTION_MOVE:

      //处理移动事件

      break;

      case MotionEvent.ACTION.UP:

      //处理抬起事件

      break;

    }

    return true;

  }

  在不涉及多点操作情况下,通常可以使用以上代码来完成触摸事件的监听,不过这里只是一个代码模板,实际开发过程中会用到复杂的逻辑的触摸事件.

  在Android中,系统提供了非常多的方法来获取坐标值,相对距离等.方法丰富固然好,但也给初学者带来了困惑,不知道在实际情况下采用什么方法,如下总结了一些API,结合坐标系来看看该如何使用它们

  这些方法可以分成如下两个类别:

  * View提供的获取坐标方法

  getTop():获取到的是View本身的顶边到其父布局顶边的距离

  getLeft():获取到的View自身的左边到其父布局左边的距离

  getRight():获取到的是View自身的右边到其父布局左边的距离

  getBottom():获取到的是View自身的底部到其父布局顶边的距离

  *MotionEvent提供的方法

  getX():获取点击事件距离控件左边的距离,即视图坐标

  getY():获取点击事件距离控件顶边的距离,即视图坐标

  getRawX():获取点击事件距离整个屏幕左边的距离,即绝对坐标

  getRawY():获取点击事件距离整个屏幕顶边的距离,即绝对坐标

  

触摸事件MotionEvent的更多相关文章

  1. Android触摸事件MotionEvent详解

    触摸事件MotionEvent在用户交互中,占着非常重要的地位.首先,来看看MotionEvent中封装的一些常用的事件常量,它定义了触摸事件的不同类型. 1.单点触摸按下动作 public stat ...

  2. Android 手势&触摸事件 MotionEvent

    1.http://blog.csdn.net/omg_2012/article/details/7881443 这篇相当好啊 2.http://blog.csdn.net/android_tutor/ ...

  3. 触摸事件 Touch MotionEvent ACTION

    MotionEvent简介 当用户触摸屏幕时,将创建一个MontionEvent对象,MotionEvent包含了关于发生触摸的位置.时间信息,以及触摸事件的其他细节. 获取MontionEvent对 ...

  4. 触摸事件【MotionEvent】简介

    MotionEvent简介 当用户触摸屏幕时,将创建一个MontionEvent对象,MotionEvent包含了关于发生触摸的位置.时间信息,以及触摸事件的其他很多细节. Android 将所有的输 ...

  5. Android触摸事件流程剖析

    Android中的触摸事件流程就是指MotionEvent如何传递,主要包括两个阶段: onInterceptTouchEvent触摸事件拦截方法传递,从外到里传递 onTouchEvent触摸事件处 ...

  6. 一个demo让你彻底理解Android触摸事件的并发

    注:本文涉及的demo的地址:https://github.com/absfree/TouchDispatch 1. 触摸动作及事件序列 (1)触摸事件的动作 触摸动作一共有三种:ACTION_DOW ...

  7. android自定义控件(9)-Android触摸事件分发机制

    触摸事件的传递机制:   首先是最外层的viewgroup接收到事件,然后调用会调用自己的dispatchTouchEvent方法.如果在ACTION_DOWN的时候dispatchTouchEven ...

  8. Cocos2d-android (06) 屏幕触摸事件及坐标转换

    为屏幕添加触摸事件,将左上角坐标转换为左下角坐标 package com.arlen.cocos2d.touch01; import org.cocos2d.layers.CCLayer; impor ...

  9. 手势识别官方教程(8)拦截触摸事件,得到触摸的属性如速度,距离等,控制view展开

    onInterceptTouchEvent可在onTouchEvent()前拦截触摸事件, ViewConfiguration得到触摸的属性如速度,距离等, TouchDelegate控制view展开 ...

随机推荐

  1. Hibernate学习笔记(三)—— Hibernate的事务控制

    Hibernate是对JDBC的轻量级封装,其主要功能是操作数据库.在操作数据库过程中,经常会遇到事务处理的问题,接下来就来介绍Hibernate中的事务管理. 在学习Hibernate中的事务处理之 ...

  2. kotlin spring @value 注解

    spring boot和kotlin里静态类使用@Value注解配置解决方案前言spring boot里默认是不能给静态属性使用@Value赋值的.所以这里使用中间变量过渡绑定. 方案//applic ...

  3. C++_类入门5-智能指针模板类

    智能指针是行为类似于指针的类对象,但这种对象还有其他功能. 本节介绍三个可帮助管理动态内存分配的智能指针模板(auto_ptr.unique_ptr和shared_ptr). void remodel ...

  4. UESTC - 618

    #include<bits/stdc++.h> using namespace std; const int maxn = 1e6+11; const int N = 1e6; typed ...

  5. Spring4 笔记

    1. 通过 xml 赋值给 bean 1) 通过set 方法赋值 (必须要有空的构造方法) <bean id="user" class="com.test.User ...

  6. follow Up — 20181101

    406. Minimum Size Subarray Sum public class Solution { /** * @param nums: an array of integers * @pa ...

  7. JS判断包括IE11在内的IE浏览器

    function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return tr ...

  8. PIE SDK去相关拉伸

    1.算法功能简介 由于高度相关的数据集经常生成十分柔和的彩色图像,因此经常使用 去相关拉伸工具来体消除多光谱数据集中的高度相关性, 从而生成一幅色彩亮丽的彩色合成图像.去相关拉伸需要 3 个输入波段, ...

  9. linux对于zombie的处理

    @(Linux基础)[僵尸进程处理] 今天在服务器上推送项目的时候,突然发现很卡.就用top查看了一下,果然此事不简单啊. top - 10:39:16 up 20 days, 23:11, 2 us ...

  10. Oracle 系统常用命令

    1.基本口令 1.1.show user                               作用:显示当前连接用户 1.2.conn 用户名/密码                       ...