触摸事件的分发与处理
来源:互联网 发布:广州行知职高 编辑:程序博客网 时间:2024/05/16 19:39
触屏操作的理解
1. MotionEvent : 触屏事件
int ACTION_DOWN=0 : 代表down
Int ACTION_MOVE=2 ; 代表move
Int ACTION_UP=1 : 代表up
getAction() : 得到事件类型值
getX() : 得到事件发生的x轴坐标(相对于当前视图)
getRawX() :得到事件发生的x轴坐标(相对于屏幕左顶点)
getY() : 得到事件发生的y轴坐标(相对于当前视图)
getRawY() :得到事件发生的y轴坐标(相对于屏幕左顶点)
2. Activity
boolean dispatchTouchEvent(MotionEvent event) : 分发事件boolean onTouchEvent(MotionEvent event) : 处理事件的回调
3. View
boolean dispatchTouchEvent(MotionEvent event) : 分发事件
boolean onTouchEvent(MotionEvent event) : 处理事件的回调方法
void setOnTouchListener(OnTouchListener l) : 设置事件监听器
void setOnClickListener(OnClickListener l) : 设置点击监听
void setOnLongClickListener(OnLongClickListener l) : 设置长按监听
void setOnCreateContextMenuListener(OnCreateContextMenuListener l) : 用于创建菜单
4. ViewGroup
boolean dispatchTouchEvent(MotionEvent ev) : 分发事件
boolean onInterceptTouchEvent(MotionEvent ev) : 拦截事件的回调方法
触摸事件的分发与处理
*事件产生的顺序为: down-->move-->move...--->up
*事件对象被系统创建后, 首先会调用对应Activity对象的dispatchTouchEvent()进行分发
*down在分发给视图对象的过程中要确定消费者(onTouchEvent()返回true),如果都返回false, 那事件的消费者只能是Activity了
*后面的move和up事件, 将事件分发给消费者(可能是视图对象,也可能是Activity)处理, 如果视图不消费, 直接交给Activity处理消费
*每个事件都需要有一个消费者
按键操作的理解
操作的基本类型
*down : 手指按下
*up : 手指从按键上离开
*按键操作的顺序: downdowndown…--->up
*对按键的任何一个操作, 系统都会创建一个KeyEvent对象来对应这个操作
*按键的长按监听: down之后一定时间还没有up时会触发长按监听回调
KeyEvent
int ACTION_DOWN = 0 : 标识down的常量
int ACTION_UP = 1 : 标识up的常量
int getAction() : 得到事件类型
int getKeyCode() : 得到按键的keycode(唯一标识)
tartTracking() : 追踪事件, 用于长按监听
Activity
boolean dispatchKeyEvent(KeyEvent event) : 分发事件
boolean onKeyDown(int keyCode, KeyEvent event) : 按下按键的回调
boolean onKeyUp(int keyCode, KeyEvent event) : 松开按键的回调
boolean onKeyLongPress(int keyCode, KeyEvent event) : 长按按键的回调
int getLeft()得到当前视图左顶点相对父视图的X轴坐标
int getTop()得到当前视图左顶点相对父视图的Y轴坐标
int getRight()得到当前视图右下角点相对父视图的X轴坐标
int getBottom()得到当前视图右下角点相对父视图的Y轴坐标
layout(int left, int top, int right, int bottom) :动态指定当前视图在父视图中的定位, 参数为相对父视图的坐标
ViewParent getParent() :得到当前View的父视图对象
- 触摸事件的分发与处理
- android 屏幕触摸事件的分发与处理
- android 屏幕触摸事件的分发与处理
- Android触摸事件分发与处理
- android触摸事件分发与处理简述
- android触摸事件分发与处理简述
- android触摸事件的分发和处理
- Android触摸事件的分发处理
- Android触摸事件的分发、拦截、处理
- 手势与触摸的事件分发机制
- 手势与触摸的事件分发机制
- 嵌套viewpager触摸的事件分发事件处理
- android面试题之触摸事件分发与处理简述
- Android 触摸事件的分发与处理流程:onInterceptTouchEvent和onTouchEvent
- 触摸事件的分发机制
- UIResponder与UIView的触摸事件处理
- Android触摸事件的传递与处理
- android 触摸事件的处理与总结
- 性能优化-基于sqlite的优化
- 自定义导航返回按钮是用customView不可以的原因?
- 238. Product of Array Except Self (后两种方法有待进一步研究)
- poj1741 Tree
- PHP面向对象——构造函数、析构函数
- 触摸事件的分发与处理
- ML 工程师需了解的 10 大算法
- Git修改已经提交的注释
- 打印错误的堆栈信息
- 更为详细的Txtsetup.sif文件解释
- Dreamoon and Sums CodeForces - 476C
- python开源项目目录结构参考
- C/C++内存问题检查利器—Purify (一)
- Eclipse自动编译NDK/JNI的三种方法