Android 手势

  1. GestureDetector:手势监听类,通常在View的setOnTouchListener方法中设置TouchListener,在TouchListener的onTouch函数中把MotionEvent 触屏事件交给GestureDetector的onTouchEvent处理,GestureDetector构造函数里要设置一个OnGestureListener接口的实现对象,一般用SimpleOnGestureListener
    。对SimpleOnGestureListener接口中函数的说明:

    • 当在屏幕单次轻击时,事件顺序如图,onTouch是view的方法,onDown,onSingle,onSingleTapConfirmed是OnGestureListener方法,onSingleTapUp被调用,说明发生了单击事件,onSingleTapConfirmed被调用,说明确认发生了一个单击事件,不是双击的事件。需要注意的是onSingleTapUp已经是一click事件,onSingleTapUp触发的时候是ACTION_UP事件。onSingleTapConfirmed是在用户手指离开屏幕后触发,所有up并不是所有触屏事件的结束
    • 当在屏幕上双击时,事件顺序如图,首先发生了一个onSingleTapUp,说明完成了一次单击事件,然后发生了onDoubleTap,至此,一次双击事件已经完成。我们可以看到,onDoubleTap发生的时候是ACTION_DOWN事件,也就是说双击事件是第二次按下屏幕的时候触发,而不是第二次离开屏幕的时候触发,在onDoubleTap发生之后,就可以在onDoubleTapEvent中监听到双击事件发生后从按下到弹起的所有触屏事件。onDoubleTap发生后不会触发onSingleTapUp和onSingleTapConfirmed
    • 做一个长按的操作,事件顺序如图,在ACTION_DOWN时发生,onLongPress发生后在up之前不会用其他事件触发,可以在onShowPress处理状态的改变,onShowPress的解释:The user has performed a down MotionEvent and not performed a move or up yet. This event is commonly used to provide visual feedback to the user to let them know that their action has been recognized i.e. highlight an element.比如按钮的按下状态。
    • 做一个滑动操作,事件顺序如图,首先是ACTION_DOWN,之后是多次ACTION_MOVE,移动超过一定距离就出发了onScroll,所以onScroll会被出发多次,如果onScroll被触发,在up之前不会有长按,单击,双击等事件。移动的距离是相对于上一次onScroll事件的移动距离,而不是当前点和按下点的距离,滑动速度够快有时会触发onFling事件,onFling事件的触发不是一定的,onFling是在ACTION_UP触发,平时列表在离开屏幕时继续滚动,就是通过这种方式触发。
时间: 2024-10-11 12:03:20

Android 手势的相关文章

Android手势源码浅析-----手势绘制(GestureOverlayView)

Android手势源码浅析-----手势绘制(GestureOverlayView)

android手势事件 快速移动 长按触摸屏 按下触摸屏,并拖动

/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //参数解释: // e1:第1个ACTION_DOWN MotionEvent // e2:最后一个ACTION_MOVE MotionEvent // velocityX:X轴上的移动速度,像素/秒 // velocityY:Y轴上的移动速度,像素/秒 // 触发条件 : /

Android手势操作使用Fling,Scroll等Gesture

Android手势操作  一盏灯, 一片昏黄: 一简书, 一杯淡茶. 守着那一份淡定, 品读属于自己的寂寞. 保持淡定, 才能欣赏到最美丽的风景! 保持淡定, 人生从此不再寂寞. 前言利用手势操作在现在的APP中越来越普及,大多数时候使用Fling,Scroll等Gesture能大幅度提高用户的操作体验,特别是大屏手机返回键程越来越大的现状下.  在Android系统下,手势识别是通过Gestur... douban.com/doulist/38811866/douban.com/doulist

Android 手势检测实战 打造支持缩放平移的图片预览效果(下)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图片,简单介绍了下Matrix:具体请参考:Android 手势检测实战 打造支持缩放平移的图片预览效果(上):本篇继续完善我们的ImageView~~ 首先加入放大后的移动~~ 1.自由的进行移动 我们在onTouchEvent里面,加上移动的代码,当然了,必须长或宽大于屏幕才可以移动~~~ @Ov

【工作记录】android手势事件操作记录

/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //参数解释: // e1:第1个ACTION_DOWN MotionEvent // e2:最后一个ACTION_MOVE MotionEvent // velocityX:X轴上的移动速度,像素/秒 // velocityY:Y轴上的移动速度,像素/秒 // 触发条件 : /

Android 手势锁的实现 让自己的应用更加安全吧

今天偶遇以github上gesturelock关于手势锁的一个例子(有兴趣的去搜索下看看),于是下载下来研究,无奈基本没有注释,代码上存在一些问题(当设置gravity=center_vertical无法进行手势选择,无意中发现的),于是借鉴这位仁兄的代码,自己重写写了一个,修复了一些问题,加入一些基本的自定义属性,在此先感谢这位兄弟~. 先上图,默认效果图: 当然可以自定义数量啊,颜色神马的,自定义效果图: 如果你有艺术细胞,可以给我推荐几个颜色,无奈个人审美有问题~ 1.整体思路 a.自定义

Android手势缩放图片以及图片黏贴在手指随手势移动

一个Android手势缩放图片的工具类:同时,此类还实现另外一个功能:当手指按在触屏上移动时候,图片"黏贴"在手指上随手指移动而整体移动. 具体使用方法可以是这样:先new一个此类的实例,然后在ImageView的方法setOnTouchListener(new ImageViewOnMultiTouchListener()); 例如: ImageViewOnMultiTouchListener listener=new ImageViewOnMultiTouchListener();

Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils等分析

Android手势密码LockPatternView.LockPasswordUtils.LockPatternUtils 在使用别人写的这个手势密码的时候,我们通常是有自己的需求,可能这里的代码很多也很复杂,有没有什么很多注释,要把整个代码弄明白是要花很多时间而且基础要非常好的,可能在赶项目的时候没有时间去研究,下面我列出一些关键的地方,方便修改代码. 1.在创建手势密码的时候CreateGesturePasswordActivity中 下面是手势密码设置的时候界面的一些变化,和要处理的一些事

Android 手势(Gesture)

一.什么是手势? 所谓手势,其实就是指用户手指或触摸笔在触摸屏上的连续触碰行为,比如在屏幕上葱左至右划出一个动作,就是手势,再比如在屏幕上画一个圆圈也是一个手势,手势这种连续的触碰会形成某个方向上的移动趋势,也会形成一个不规则的几何图形.Android对两种手势行为都提供了支持: 1.对于第一种手势行为而言,Android提供了手势检测,并为手势检测提供了相应的监听器. 2.对于第二种手势行为,Android允许开发者添加手势,并提供了相应的API识别用户手势 二.手势检测 Android为手势

Android 手势&触摸事件

在刚开始学Android的时候,就觉得Google的文档不咋样,在研究手势时,更加的感觉Google的文档写得实在是太差了.很多常量,属性和方法,居然连个描述都没有.没有描述也就罢了,但是OnGestureListener里手势这么多,它也没有一个介绍说明,在没有进行不断才尝试之前,谁能搞懂onLongPress和onShowPress,onScroll和onFling的关系与差别吗?Google真的需要在文档方面做一次大手术了.不过好在经过鄙人不断反复的尝试.从个人的角度为这几个手势动作做出了