GestureDetector 笔记

19 阅读1分钟

GestureDetector.OnGestureListener接口

class GestureListener:GestureDetector.OnGestureListener,GestureDetector.OnDoubleTapListener {

    override fun onDown(p0: MotionEvent?): Boolean {
        Log.e("GestureListener","onDown:")
        return true
    }

    override fun onShowPress(p0: MotionEvent?) {
        Log.e("GestureListener","onShowPress:")
    }

    override fun onSingleTapUp(p0: MotionEvent?): Boolean {
        Log.e("GestureListener","onSingleTapUp:")
       return true
    }


    override fun onScroll(p0: MotionEvent?, p1: MotionEvent?, p2: Float, p3: Float): Boolean {
        Log.e("GestureListener","onScroll:")
        return true
    }

    override fun onLongPress(p0: MotionEvent?) {
        Log.e("GestureListener","onLongPress:")
    }

    override fun onFling(p0: MotionEvent?, p1: MotionEvent?, p2: Float, p3: Float): Boolean {
        Log.e("GestureListener","onFling:")
        return true
    }

    override fun onSingleTapConfirmed(p0: MotionEvent?): Boolean {
        Log.e("GestureListener","onSingleTapConfirmed:")
        return true
    }

    override fun onDoubleTap(p0: MotionEvent?): Boolean {
        Log.e("GestureListener","onDoubleTap:")
        return true
    }

    override fun onDoubleTapEvent(p0: MotionEvent?): Boolean {
        Log.e("GestureListener","onDoubleTapEvent:")
        return true
    }
    
    
    
}

单击

image.png

双击

image.png

//0 代表 ACTION_DOWN,1 代表 ACTION_UP,2 代表 ACTION_MOVE

SimpleOnGestureListener

1.这是一个类不是接口

2.按需实现方法,不必被强制全部重写

onFling()

boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)

e1:第一个 ACTION_DOWN MotionEvent
e2:最后一个 ACTION_MOVE MotionEvent
velocityX: X轴上的移动速度,单位为像素/秒
velocityY: y轴上的移动速度,单位为像素/秒
//左滑 e1.getX() - e2.getX() > 100 && Math.abs(velocityX) > 100