【安卓】事件处理

屏幕的直角坐标系,左上角是原点,x轴向右,y轴向下

onKeyDown、onKey区别

Onkeydown 只能在activity代码中使用、只能检测物理按键、不区分按下和松开操作。

onkey 可同时检测两类按键。

连续两次返回退出程序:实现方式是拦截后退出

音量调节事件

由于不再Activity中,所以不能用onkeydown方法检测按键。

通过onkeydown弹出音量调节框,然后再给拖动条注册按键监听器OnkeyListener。

触摸事件

手势事件的分发流程

与手势事件有关的方法主要有三个

dispatchTouchEvent:进行事件分发处理

onInterceptTouchEvent:进行事件拦截处理

onTouchEvent:进行事件触摸处理

方法的执行者主要有三个:

  • 页面类:包括activity及其派生类
    • 可操作dispatchTouchEvent和onTouchEvent两种方法
  • 容器类:包括从ViewGroup类派生出的各类容器与布局
    • 可操作dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent
  • 控件类:包括从View类派生的各类控件
    • 可操作dispatchTouchEvent和onTouchEvent两种方法

常见的手势处理方法

  • 容器类的dispatchTouchEvent方法
    • 控制事件的分发,决定把手势交给谁处理
  • 容器类的onInterceptTouchEvent方法
    • 控制事件的拦截,决定是否要把手势交给下级视图处理
  • 控件类的onTouchEvent方法
    • 进行手势事件的具体处理

手势事件处理MotionEvent机制(触屏)

手势检测

手势检测器 GestureDetector

原理与具体用法

飞掠视图(ViewFlipper)的用法

与viewPager类似,不过飞掠视图更像是视图的立体排列

手势检测和飞掠视图的结合使用

事件冲突处理

1、通过拦截器处理

2、采用抽屉布局。比如viewpager 和fragment 都有上下滑动操作

KeyEvent机制(案件)

原文地址:https://www.cnblogs.com/ckxkexing/p/14214819.html