zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    JAVA基础复习-输入、输出缓冲字节流整合(实现图片复制)
    JAVA基础复习一 字节输入、输出流整合(实现图片复制)
    JAVA基础复习-FileRead与FileWriter结合使用示例:字符输入、输出流整合(实现文本类文件的复制)
    JAVA基础复习- 字符流FileWriter
    JAVA基础复习-字符流FileRead
    JAVA基础复习一 File类的常用功能
    mysql设置大小写敏感
    Understanding the Settlement Mechanism in Microsoft Dynamics AX
    AX2012导入导出excel
    Changes in Microsoft Dynamics AX 2012 InventTrans data model
  • 原文地址:https://www.cnblogs.com/rfheh/p/4164448.html
Copyright © 2011-2022 走看看