【App】Android手势滑动实现

详细的博客介绍:
    https://www.gcssloop.com/customview/gestruedector

 

左滑,右滑,上划,下滑的实现总结:

1.实现接口android.view.GestureDetector.OnGestureListener;

2.onTouchEvent返回gestureDetector.onTouchEvent(event);

3.重载实现onFling方法,判断x和y位移,以及速度;

 

@Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        float minMoveDistance = 60;
        float minVelocity = 0;
        float beginX = e1.getX();
        float endX = e2.getX();
        float beginY = e1.getY();
        float endY = e2.getY();

        if(Math.abs(beginX-endX) > minMoveDistance || Math.abs(beginY-endY) > minMoveDistance)
        {
            mv.tilt = false;
            mv.zoom = false;
            mv.shift = true;
        }

        if(beginX-endX > minMoveDistance && Math.abs(velocityX) > minVelocity)
        {
            //左滑
            swipeLeft = true;
            mv.displacementX -= beginX-endX;
            mv.postInvalidate();

        }else if(endX-beginX >minMoveDistance && Math.abs(velocityX)>minVelocity)
        {
            //右滑
            swipeRight = true;
            mv.displacementX += endX-beginX;
            mv.postInvalidate();
        }else if(beginY-endY > minMoveDistance && Math.abs(velocityY) > minVelocity)
        {
            //上划
            swipeUp = true;
            mv.displacementY -= beginY-endY;
            mv.postInvalidate();
        }else if(endY-beginY >minMoveDistance && Math.abs(velocityY)>minVelocity)
        {
            //下划
            swipeDown = true;
            mv.displacementY += endY-beginY;
            mv.postInvalidate();
        }

        return false;
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值