• 声明:转载请注明出处:http://blog.csdn.net/Hello_Chillax/article/details/45824999
  • 更多精彩请访问:http://blog.csdn.net/hello_chillax,谢谢

先看几个函数:提到Android的触摸事件处理,不少人都会立刻想到某些令人头疼的函数,这里列举一下,刺激一下你的小神经:

    @Override    public boolean onTouchEvent(MotionEvent event) {        return super.onTouchEvent(event);    }    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        return super.dispatchTouchEvent(ev);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        return super.onInterceptTouchEvent(ev);    }    @Override    public boolean onTouch(View v, MotionEvent event) {        return false;    }

恩,今天我们来看一下这四个函数的作用以及之间的调用关系,从而理清触摸事件处理机制。

一. 我们先来搞定其中的两个:

    @Override    public boolean onTouchEvent(MotionEvent event) {        return super.onTouchEvent(event);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        return super.onInterceptTouchEvent(ev);    }

1.1 首先明确一点,Android的事件分发和处理是自上而下的,即一个触摸事件第一次肯定是发给最外层的View的。
1.2 这里我们举个例子:我们假设一个窗口的多个ViewGroup组成了一个大家庭,其中最外层的View辈分最长,最里层的View辈分最小,然后把一个触摸事件event比喻成一个苹果。那么,如果发生了一个事件(获得了一个苹果),将会发生如下的事情:

苹果的传递过程:

爷爷——>爸爸——>孙子。

那如果爷爷这一辈把苹果吃掉了呢,这时我们称这个事件被消费。

看下图:

总体把握Android中的触摸事件处理_第1张图片

再细致地去分析:
总体把握Android中的触摸事件处理_第2张图片

至此,是不是对Android中的消息传递机制有了一个整体上的把握呢,
下面我们再去弄清一些细节。

更多相关文章

  1. Android 界面开发---控件事件监听器、按键处理
  2. cocos2dx android 返回键 Menu键 事件
  3. Android:30分钟弄明白Touch事件分发机制
  4. 使用android模拟事件,python完成自动化测试
  5. 2010.12.10(4)——— android MapView 处理双击事件
  6. 【Android】代码实现模拟屏幕点击和键盘按键事件
  7. Android之View和ViewGroup事件分发
  8. Android 事件触发机制的深入学习
  9. Android ViewGroup 触摸屏事件派发机制和源码分析

随机推荐

  1. MySql批量插入时如何不重复插入数据
  2. SQL模糊查询报:ORA-00909:参数个数无效问
  3. MySQL中日期型单行函数代码详解
  4. 如何搭建 MySQL 高可用高性能集群
  5. 分析mysql中一条SQL查询语句是如何执行的
  6. MySQL 发生同步延迟时Seconds_Behind_Mas
  7. MySQL如何使用使用Xtrabackup进行备份和
  8. MySQL 数据恢复的多种方法汇总
  9. Unity连接MySQL并读取表格数据的实现代码
  10. 新手入门Mysql--sql执行过程