我正在创建一个可以在图片上绘图的应用程序。绘图是通过 pictureView、带有位图的 Canvas 和 onTouchListener 实现的。 我想添加一个功能,当用两个手指短 按下时,该功能将撤消最后一个操作。 我通过这样做实现了它:
if(event.getActionMasked() == MotionEvent.ACTION_POINTER_UP ){
//undo
}
而且我想在用两根手指长 按下时撤消所有绘图操作。 我尝试过类似的方法,但它只会检测一次。
if(event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN ){
numberOfDown++;
if(numberOfDown>100){
//undo
}
}
我怎样才能实现我想要的?
最佳答案
我不确定主手指或非主手指的 Action 索引是从零开始,因此您可能需要将这些 0 翻转为 1。
if(event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN && event.getActionIndex()==0){
mSecondFingerTimeDown = System.currentTimeMillis();
}
if(event.getActionMasked() == MotionEvent.ACTION_POINTER_UP && event.getActionIndex()==0 ){
if ((System.currentTimeMillis()-mSecondFingerDownTime) >= LONG_PRESS_TIME_MILLIS)
//long double-press action
else
//short double-press action
}
关于Android检测双指长按,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773365/