zoukankan      html  css  js  c++  java
  • Android进阶篇GestureDetector初探

    GestureDetector是系统提供的一个监听手势在屏幕操作的类.

    使用方法也挺简单,首先我们应该初始化

    GestureDetector对象:

     mGesture = new GestureDetector(this, new GestureListener());

    GestureListener类:

        class GestureListener extends SimpleOnGestureListener {
            //滑动的监听
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                    float velocityY) {
                try {
                    if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                        return false;
                    if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                        //从右向左滑动
                        return true;
                    } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                        //从左向右滑动
                        return true;
                    }
                } catch (Exception e) {
                    // nothing
                }
                return false;
            }
            
            //单击
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return false;
            }
        };

    手势判断的常量值:

        private static final int SWIPE_MIN_DISTANCE = 120;
        private static final int SWIPE_MAX_OFF_PATH = 250;
        private static final int SWIPE_THRESHOLD_VELOCITY = 200;

    在要使用的地方直接拦截onTouchEvent事件:

        @Override
        public boolean onTouchEvent(MotionEvent event) {
            // TODO Auto-generated method stub
            return mGesture.onTouchEvent(event);
        }
  • 相关阅读:
    Java各种数据结构实现
    Lintcode答案&笔记
    JavaScript之onclick事件
    CSS3过渡结束监听事件,清除/修改表单元素的一些默认样式
    移动端自动调整根元素字体大小
    手机移动端事件封装
    js 拖拽 鼠标事件,放大镜效果
    CSS 常用属性之 阴影
    CSS常用属性之选择器
    全屏banner及全屏轮播
  • 原文地址:https://www.cnblogs.com/gongcb/p/2859714.html
Copyright © 2011-2022 走看看