在android自定义视图中,如何在两个手指触摸之前忽略单触操作?

在android自定义视图中,如何在两个手指触摸之前忽略单触操作?,android,kotlin,Android,Kotlin,我需要在我的绘画应用程序中使用缩放功能,所以我使用ScaleGetureDetector,但当我执行两个手指触摸动作进行缩放时——在它触发单触动作并在画布上绘制东西之前,我如何检查画布是否正在缩放而忽略单触动作 override fun onTouchEvent(event: MotionEvent): Boolean { scaleDetector.onTouchEvent(event) event.transform(touchMatrix) val x = eve

我需要在我的绘画应用程序中使用缩放功能,所以我使用ScaleGetureDetector,但当我执行两个手指触摸动作进行缩放时——在它触发单触动作并在画布上绘制东西之前,我如何检查画布是否正在缩放而忽略单触动作

override fun onTouchEvent(event: MotionEvent): Boolean {
    scaleDetector.onTouchEvent(event)
    event.transform(touchMatrix)

    val x = event.x
    val y = event.y

    when (event.action and MotionEvent.ACTION_MASK) {
        MotionEvent.ACTION_DOWN -> {
            presenter.onPlotClick(x, y)
        }
        MotionEvent.ACTION_POINTER_DOWN -> {

        }
        MotionEvent.ACTION_MOVE -> {
            presenter.onFingerMoveOnPlot(x, y)
        }
        MotionEvent.ACTION_POINTER_UP -> {

        }
        MotionEvent.ACTION_UP -> {
            presenter.onFingerUpFromPlot()
        }
    }

    invalidate()
    return true
}

在我看来,问题在于,在做双指手势时,两个手指不太可能同时触摸屏幕。但是您仍然希望立即显示单指动作,因此您迫不及待地渲染单指动作,否则用户将感觉到滞后。因此,我可能会尝试立即渲染单指动作,然后如果在某个时间段内检测到第二个手指,而第一个手指没有移动超过某个距离,则撤消单指动作,并将其解释为双指动作。

在我看来,问题是,当执行双指手势时,两个手指不可能同时触摸屏幕。但是您仍然希望立即显示单指动作,因此您迫不及待地渲染单指动作,否则用户将感觉到滞后。因此,我可能会尝试立即渲染单指动作,然后如果在某个时间段内检测到第二个手指,而第一个手指没有移动超过某个距离,则撤消单指动作,并将其解释为双指动作