アクティビティでジェスチャーを処理したい。これを行うには、アクティビティでpublic boolean 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 つのアクションをつかむことができますが、問題は、2 本の指が画面上にあるときに、ACTION_MOVE が最初と 2 番目の指の両方の動きをつかむことです。メソッドMEvent.getActionIndex()は、常に 0 を返す ACTION_MOVE では機能しません。私ができる唯一のことは、finger1 の位置を保存し、そのポイントに近い動きを破棄することです。その結果、指 2 の動きが小指 1 の動きによって「汚染」されることがあります。これは、指が画面上でその位置を保持しているにもかかわらず、リスナーがそれぞれの最小の動きを感じるためです。
どうすればこれを改善できますか?