Android自定义View

布局

Android进阶之布局视频

事件机制

关于View传递事件的博文很多,看的让人眼花缭乱,最近有点时间,把自己所了解的做一个总结,直接进入主题了。
Android进阶之触摸反馈核心视频

事件的传递主要有三个方法:dispatchTouchEvent(事件分发)、onInterceptTouchEvent(事件拦截)、onTouchEvent(事件消费)。如下图:

事件 Activity ViewGroup View
dispatchTouchEvent
onInterceptTouchEvent 没有 没有
onTouchEvent

从上面的表格我们可以看出只有拦截事件比较特殊,只存在ViewGroup中,也就是我们只能在ViewGroup中才能重写该方法。这三个方法都有返回值,返回值为true的话表示该事件被消费,事件传递终止,反之返回false,事件继续传递。

事件分成好几种类型,我们常用的就三种,从手指按下移动到抬起依次为:ACTION_DOWN(按下)、ACTION_MOVE(移动)、ACTION_UP(抬起)。

下图为事件传递的流程图:


Android自定义View_第1张图片
事件传递的流程.png

建议读完以下文章:

  1. 安卓自定义View进阶-MotionEvent详解

  2. 安卓自定义View进阶-多点触控详解

你可能感兴趣的:(Android自定义View)