Android Gesture 手势识别

手势识别

实现OnGestureListener, OnTouchListener接口

class MyView extend LinearLayout implements OnGestureListener, OnTouchListener {

    public MyView(Context context) {
        this.setOnTouchListener(this);// 将本类绑定触屏监听器
        GestureDetector gd = new GestureDetector(this);
    }

    //先经过gd.onTouchEvent(event)事件判断,
    //执行手势则不执行父类onTouch(View v, MotionEvent event)事件
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return gd.onTouchEvent(event);
    }

    // --------------以下是使用OnGestureListener手势监听的时候重写的函数---------
    /**
     * @以下方法中的参数解释:
     * @e1:第1个是 ACTION_DOWN MotionEvent 按下的动作
     * @e2:后一个是ACTION_UP MotionEvent 抬起的动作(这里要看下备注5的解释)
     * @velocityX:X轴上的移动速度,像素/秒
     * @velocityY:Y轴上的移动速度,像素/秒
     */
    @Override
    public boolean onDown(MotionEvent e) {
        // ACTION_DOWN
        return false;
    }
    @Override
    // ACTION_DOWN 、短按不移动
    public void onShowPress(MotionEvent e) {
    }

    @Override
    // ACTION_DOWN 、长按不滑动
    public void onLongPress(MotionEvent e) {
    }

    @Override
    // ACTION_DOWN 、慢滑动
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
            float distanceY) {
        return false;
    }

    @Override
    // ACTION_DOWN 、快滑动、 ACTION_UP
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        v_str.add("onFling");
        //-------e1是MotionEvent.ACTION_DOWN, e2是MotionEvent.ACTION_UP----------
        // if(e1.getAction()==MotionEvent.ACTION_MOVE){
        // v_str.add("onFling");
        // }else if(e1.getAction()==MotionEvent.ACTION_DOWN){
        // v_str.add("onFling");
        // }else if(e1.getAction()==MotionEvent.ACTION_UP){
        // v_str.add("onFling");
        // }
        // if(e2.getAction()==MotionEvent.ACTION_MOVE){
        // v_str.add("onFling");
        // }else if(e2.getAction()==MotionEvent.ACTION_DOWN){
        // v_str.add("onFling");
        // }else if(e2.getAction()==MotionEvent.ACTION_UP){
        // v_str.add("onFling");
        // }
        return false;
    }
    @Override
    // 短按ACTION_DOWN、ACTION_UP
    public boolean onSingleTapUp(MotionEvent e) {
        return false;
    }
}

这只是一个简单的例子,Android Simples中有个完整的例子:Gestures Builder。

时间: 2024-10-07 23:46:27

Android Gesture 手势识别的相关文章

简述Android触摸屏手势识别

很多时候,利用触摸屏的Fling.Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等.在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相 关的例子,API Demo中的TouchPaint也仅仅是提到了onTouch事件的处理,没有涉及到手势.Android Dev

Android Gesture 手势创建以及使用示例

在Android1.6的模拟器里面预装了一个叫Gestures Builder的程序,这个程序就是让你创建自己的手势的(Gestures Builder的源代码在sdk问samples里面有,有兴趣可以看看) 将上面这四个文件复制到你的工程目录下面,如图所示 在模拟器上面运行这个工程文件,在模拟器上面创建一些手势文件,例如: 创建的手势将被保存到/mnt/sdcard/gestures里面,然后新建一个测试的手势项目文件,将gestures文件复制到res目录中的raw文件下面, 然后配置xml

理解Android的手势识别

对于触摸屏,其原生的消息无非按下.抬起.移动这几种,我们只需要简单重载onTouch或者设置触摸侦听器setOnTouchListener即可进行处理.不过,为了提高我们的APP的用户体验,有时候我们需要识别用户的手势,Android给我们提供的手势识别工具GestureDetector就可以帮上大忙了. 基础 GestureDetector的工作原理是,当我们接收到用户触摸消息时,将这个消息交给GestureDetector去加工,我们通过设置侦听器获得GestureDetector处理后的手

Android gesture 原理

1.简介 在Android中,我们通过工具GestureDetector识别手势,识别手势可提高我们的app用户感知. 2.详解 1.手碰事件 2.Touch事件机制 3.GestureDetector 总结 接触手势识别处理理想的开源项目应该是jamendo,想深入研究的朋友可以好好了解.

Hololens开发笔记之Gesture手势识别(基本介绍)

手势识别是HoloLens交互的重要输入方法之一.HoloLens提供了底层API和高层API,可以满足不同的手势定制需求.底层API能够获取手的位置和速度信息,高层API则借助手势识别器来识别预设的手势(包括,单击.双击.长按.平移等等). 手势输入 Gesture Input 本部分为高级API使用,通过输入源来识别手势.每个手势对应一个SourceKind输入源,大部分手势事件都是系统预设的事件,有些事件会提供额外的上下文信息. 只需要很少的步骤就能使用GestureRecognizer集

Android学习(十六) 通过GestureOverlayView进行手势识别

一.使用GestureOverlayView进行手势识别: 1.使用Gestures Builder生成手势文件,Gestures Builder为SDK中的示例项目,使用new-->Other-->Android-->Android Sample Project-->Gestures Builder创建示例项目,运行项目文件后,会生成手势文件,将手势文件导出,然后拷贝到当前项目中的res/raw目录下. 2.在页面中拖放一个<android.gesture.GestureO

Android手势识别的发展

在播放器.与手势识别.所以,看看今天的我们Android手势识别. 首先,我们需要站在巨人的肩膀上.有些人举了个例子和说明. 第一章: http://www.2cto.com/kf/201110/109480.html 对于触摸屏.其原生的消息无非按下.抬起.移动这几种,我们仅仅须要简单重载onTouch或者设置触摸侦听器setOnTouchListener就可以进行处理.只是.为了提高我们的APP的用户体验,有时候我们须要识别用户的手势,Android给我们提供的手势识别工具GestureDe

Android触摸屏中的手势识别

我们经常利用触摸屏的Fling.Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等.在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相 关的例子,API Demo中的TouchPaint也仅仅是提到了onTouch事件的处理,没有涉及到手势.Android Deve

Android开发之手势识别

在播放器中,涉及到手势识别.所以,今天我们来说一下Android的手势识别. 我们首先需要站在巨人的肩膀上.引用一些别人的案例和说明. 第一篇: http://www.2cto.com/kf/201110/109480.html 对于触摸屏,其原生的消息无非按下.抬起.移动这几种,我们只需要简单重载onTouch或者设置触摸侦听器setOnTouchListener即可进行处理.不过,为了提高我们的APP的用户体验,有时候我们需要识别用户的手势,Android给我们提供的手势识别工具Gestur