Android Touch事件和手势处理__2020.06.11

Touch事件和手势处理:
Touch事件:表示触摸,在使用安卓设备的时候,大多操作时通过触摸完成、单击、滑动(手在屏幕上的触摸)
响应操作。
事件的派发和处理逻辑。
Touch事件:用户的手势操作:单击、长按、滑动
View中定义了onTouchEvent方法,子类都可以重写
每个Activity中也可以处理触摸事件
View.OnTouchListener()
MotionEvent对象
getAction():获取操作类型
getX():
getX(int pointerIndex):
getY():
getY(int pointerIndex):
ACTION_DOWN:刚按下
ACTION_UP:移开
ACTION_MOVE:手在移动
处理Touch事件的返回值,true表示事件已经被处理过了,不需要后续处理,false:后续会继续处理

处理Touch事件:
View.onTouchEvent():其次
Activity.onTouchEvent():最低,范围最大
View.onTouchListener():优先级最高
这几个方法的返回值
重写这些方法
1.View.onTouchEvent():重写View的onTouchEvent,需要定义一个View(自定义View),创建一个类继承View。
CustomTextView extends TextView{
    onTouchEvent(MotionEvent event){
        switch event.getAction()
            case:
                ACTION_DOWN:刚按下
                ACTION_UP:移开
                ACTION_MOVE:手在移动
    }
}
2.重写Activity 的onTouchEvent()方法。
方法的返回值
Touch事件的分发:
视图系统分为:View与ViewGroup
View:独立显示
ViewGroup:承载
处理事件:
dispatchTouchEvent(MotionEvent ev):处理事件分发
onInterceptTpuchEvent(MotionEvent ev):处理事件拦截,简单的View不存在子类,就不存在拦截
public boolean onTouchEvent(MotionEvent ev):处理事件响应

ViewGroup的层级嵌套
分发和拦截是从大到小
事件处理是从小到大

屏幕上的事件都是触摸事件
单击事件是消费事件,由控件本身消费,ViewGroup不会获得该事件,也不会对它进行处理。

手势处理:
如何去判断各种事件?
重写Activity 的onTouchEvent()方法,
//按下时间与弹起时间间隔应小于500毫秒
//按下坐标点x与弹起坐标点y的差值应小于30
在Activity的任何位置按都会响应

安卓中定义了手势探测器,会把手势类型判断好
GestureDetector;
继承接口:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值