我想在我的活动中处理一个手势。为此,我在我的 Activity 上覆盖了公共布尔 onTouchEvent(MotionEvent MEvent)方法。内容如下所示:
motionaction = MEvent.getAction();
if(motionaction == MotionEvent.ACTION_DOWN)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_UP)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_MOVE)
{
...
return true;
}
motionaction = MEvent.getActionMasked();
if(motionaction == MotionEvent.ACTION_POINTER_DOWN)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_POINTER_UP)
{
...
return true;
}
return true;
手势如下:
-finger1 在屏幕上保持它的位置(实际上是因为总是有一点点移动)
-finger2 在屏幕上移动。这是我想要抓住的运动。
我可以抓住 5 个动作,但问题是当两根手指在屏幕上时,ACTION_MOVE 会抓住第一根和第二根手指的运动。MEvent.getActionIndex()方法不适用于始终返回 0 的 ACTION_MOVE;我唯一能做的就是保存手指 1 的位置并丢弃靠近该点的移动。结果它确实并不完美,有时手指2 的运动会被小指1 的运动“污染”,因为尽管手指保持在屏幕上的位置,但听众会感觉到每个最小的运动。
我该如何改进呢?