当前位置: 移动技术网 > IT编程>网页制作>CSS > Android手势滑动实现

Android手势滑动实现

2020年07月27日  | 移动技术网IT编程  | 我要评论
详细的博客介绍:
    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;
    }

 

 

本文地址:https://blog.csdn.net/John_chaos/article/details/107598699

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网