在android自定义视图中,如何在两个手指触摸之前忽略单触操作?
我需要在我的绘画应用程序中使用缩放功能,所以我使用ScaleGetureDetector,但当我执行两个手指触摸动作进行缩放时——在它触发单触动作并在画布上绘制东西之前,我如何检查画布是否正在缩放而忽略单触动作在android自定义视图中,如何在两个手指触摸之前忽略单触操作?,android,kotlin,Android,Kotlin,我需要在我的绘画应用程序中使用缩放功能,所以我使用ScaleGetureDetector,但当我执行两个手指触摸动作进行缩放时——在它触发单触动作并在画布上绘制东西之前,我如何检查画布是否正在缩放而忽略单触动作 override fun onTouchEvent(event: MotionEvent): Boolean { scaleDetector.onTouchEvent(event) event.transform(touchMatrix) val x = eve
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
}
在我看来,问题在于,在做双指手势时,两个手指不太可能同时触摸屏幕。但是您仍然希望立即显示单指动作,因此您迫不及待地渲染单指动作,否则用户将感觉到滞后。因此,我可能会尝试立即渲染单指动作,然后如果在某个时间段内检测到第二个手指,而第一个手指没有移动超过某个距离,则撤消单指动作,并将其解释为双指动作。在我看来,问题是,当执行双指手势时,两个手指不可能同时触摸屏幕。但是您仍然希望立即显示单指动作,因此您迫不及待地渲染单指动作,否则用户将感觉到滞后。因此,我可能会尝试立即渲染单指动作,然后如果在某个时间段内检测到第二个手指,而第一个手指没有移动超过某个距离,则撤消单指动作,并将其解释为双指动作