您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > Android之手势识别
Android之手势识别手势识别(AndroidGesture)是用来侦测、处理手势相关动作的技术。Gesture大致可以分为两类:一类是触摸屏手势,另一类是输入法手势。1.1触摸屏手势触摸屏手势比较简单,通常就是按下、抬起、滑动、翻页这几种。Android系统为我们提供了手势识别工具GestureDetector,当我们接收到用户触摸消息时,将这个消息交给GestureDetector去加工,我们通过设置监听器获得GestureDetector处理后的手势。1.1.1GestureDetectorGestureDetector提供了两个监听器接口,OnGestureListener处理单击类消息接口方法方法说明onDown(MotionEvente)单击,触摸屏按下时立刻触发onSingleTapUp(MotionEvente)抬起,手指离开触摸屏时触发(长按、滚动、滑动时,不会触发这个手势)onLongPress(MotionEvente)长按,触摸屏按下后既不抬起也不移动,过一段时间后触发onShowPress(MotionEvente)短按,触摸屏按下后片刻后抬起,会触发这个手势,如果迅速抬起则不会onScroll(MotionEvente1,MotionEvente2,floatdistanceX,floatdistanceY)滚动,触摸屏按下后移动onFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY)滑动,触摸屏按下后快速移动并抬起,会先触发滚动手势,跟着触发一个滑动手势1.1.1GestureDetectorOnDoubleTapListener处理双击类消息接口方法方法说明onDoubleTap(MotionEvente)双击,手指在触摸屏上迅速点击第二下时触发onDoubleTapEvent(MotionEvente)双击的按下跟抬起各触发一次onSingleTapConfirmed(MotionEvente)单击确认,即很快的按下并抬起,但并不连续点击第二下1.1.2触摸屏手势应用有时候我们并不需要处理上面所有手势。方便起见,Android提供了另外一个类SimpleOnGestureListener实现了上述两个接口,我们只需要继承SimpleOnGestureListener,然后重载感兴趣的手势即可。1.2Gesture实现方式第一种情况重载Activity的onTouchEvent(MotionEvente)方法,参数MotionEvent的一些方法如下:名称说明getAction()获取触控动作,常用于单点触控,如:ACTION_DOWNgetActionMasked()获取触控动作,常用于多点触控,如:ACTION_POINTER_DOWNgetPointerCount()获取触控点的数量,比如2则是两个手指同时按压屏幕getPointerId(intpointerIndex)对于每个触控的点的细节,可以通过一个循环执行getPointerId方法获取索引getX(intpointerIndex)获取第pointerIndex个触控点的x位置getY(intpointerIndex)获取第pointerIndex个触控点的y位置getPressure(intpointerIndex)LCD可以感应出用户的手指压力,当然具体的级别由驱动和物理硬件决定的getDownTime()按下开始时间getEventTime()事件结束时间(注:按下花费时间=getEventTime()-getDownTime())1.2Gesture实现方式第二种情况是调用View的方法setOnTouchListener(OnTouchListenerlistener),然后实现listener的onTouch(Viewview,MotionEventevent)的方法,就可以获取触屏事件了。两种方式的区别:第一种情况适用于对当前屏幕第二种情况适用于对单个组件1.3小结主要讲解了Android中手势的开发及应用。触摸屏手势开发比较简单,容易掌握。1.4课后练习在布局中使用ImageView组件为ImageView组件添加setOnTouchListener方法实现触屏控制ImageView的图片变化,如:移动,旋转等操作
本文标题:Android之手势识别
链接地址:https://www.777doc.com/doc-5634633 .html