文档章节

Android事件分发处理

雪狼的开发故事
 雪狼的开发故事
发布于 2015/08/22 12:59
字数 388
阅读 142
收藏 8

本文将讲解Android中的事件分发处理

首先来关注三个方法:

public boolean dispatchTouchEvent(MotionEvent ev) 事件分发

public boolean onInterceptTouchEvent(MotionEvent ev)     事件拦截 

public boolean onTouchEvent(MotionEvent ev)      事件响应

MotionEvent:包含的事件的详细信息,例如触摸点的信息,触摸事件类型的信息等

重要方法:

(1)getRowX():触摸点相对于屏幕的坐标

(2)getRowY():触摸点相对于屏幕的坐标

注:getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理如果你的某个Activity中实现OnTouchListener接口,需要重写

onTouch(View view,MotionEvent event)

这个方法,
getRawX()和getRawY()获得的是相对屏幕的位置,getX()和getY()获得的永远是view的触摸位置坐标
(这两个值不会超过view的长度和宽度)。


手势操作

关于手势操作,这里其实说的是Android提供的工具类,通过GestureDetector 类来识别和处理onTouch事件,简化使用。

一般用到下面的三个类。

android.view.GestureDetector

手势操作的识别类,通过他来使用下面的识别接口。


android.view.GestureDetector.SimpleOnGestureListener

手势识别的接口类,使用他可以按需重载自己想要的方法,方法多


android.view.GestureDetector.OnGestureListener;

手势识别的类,SimpleOnGestureListener接口的父类。使用他需要实现他所有的方法。


© 著作权归作者所有

雪狼的开发故事
粉丝 2
博文 12
码字总数 5829
作品 0
海淀
程序员
私信 提问
Android 机制篇 - 事件分发机制超详解(🔥🔥🔥🔥🔥🔥🔥🔥)

Android 虽然不是四大组件,但其并不比四大组件的地位低(涉及面的广度和深入甚至比四大组件还复杂🔥)。而View的核心知识点“事件分发机制”则是不少刚入门同学的拦路虎(1、项目中处处遇...

Pepsimaxin
2018/07/12
0
0
一文读懂 Android TouchEvent 事件分发、拦截、处理过程

什么是事件?事件是用户触摸手机屏幕,引起的一系列TouchEvent,包括ACTIONDOWN、ACTIONMOVE、ACTIONUP、ACTIONCANCEL等,这些action组合后变成点击事件、长按事件等。 在这篇文章中,用打L...

传说之美(libill)
09/09
0
0
Android-View进阶-事件分发机制原理

原文链接 简简单单讲清楚android事件分发。 什么叫事件分发机制 ? 事件分发是:当发生了一个事件时,在屏幕上找到一个合适的控件来处理这个事件的过程。 因为一个界面上控件如此之多,发生一...

TryEnough
02/21
0
0
安卓自定义View进阶-事件分发机制原理

安卓自定义View进阶-事件分发机制原理 之前讲解了很多与View绘图相关的知识,你可以在 安卓自定义View教程目录 中查看到这些文章,如果你理解了这些文章,那么至少2D绘图部分不是难题了,大部...

猴亮屏
2018/05/22
63
0
ViewRootImpl源码分析事件分发

前面讲到View与WindowManager与ViewRootImpl中只讲到了ViewRootImpl是如何触发View的绘制的,但ViewRootImpl的功能可不只是绘制而已,本篇文章最主要介绍ViewRootImpl的事件分发功能。当然,...

亭子happy
02/26
9
0

没有更多内容

加载失败,请刷新页面

加载更多

记一次项目启动报java.lang.StackOverflowError

项目是spring boot,之前没有问题,突然有一次debug方式启动的时候报这个错误。 因为其他同事没有问题,线上也没有问题,所以先排除了是代码问题。 开始以为电脑开的软件太多,然后给jvm的内存...

chro008
20分钟前
12
0
idea 2019.2免费激活码

亲测有效到2020.6 812LFWMRSH-eyJsaWNlbnNlSWQiOiI4MTJMRldNUlNIIiwibGljZW5zZWVOYW1lIjoi5q2j54mIIOaOiOadgyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb......

Iverson58
28分钟前
7
0
移动APP开发中的重要注意事项

您的移动app在变化吗?如果没有,请确保遵循这些提示进行移动app开发。大多数行业的IT领导者都优先考虑劳动力和消费者的移动性。实现成功的移动app开发具有挑战性,涉及在app功能开发的基础上...

a429011717
35分钟前
6
0
Qt编写自定义控件69-代码行数统计

一、前言 代码行数统计主要用来统计项目中的所有文件的代码行数,其中包括空行、注释行、代码行,可以指定过滤拓展名,比如只想统计.cpp的文件,也可以指定文件或者指定目录进行统计。写完这...

飞扬青云
53分钟前
12
0
驰骋工作流引擎-ccflow关于 “ 是否自动计算未来的处理人”的功能变更

关键字:流程未来节点处理人 工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 业务背景:一个流程在启动起来后,是可以对一些节点计算出来处理人是谁,流程的走向。对于另...

孟娟
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部