ドキュメントには、それについて次のように書かれています。
ジェスチャは、最初のポインターが押された位置を提供する ACTION_DOWN のモーション イベントで始まります。追加のポインターが上下するたびに、フレームワークはそれに応じて ACTION_POINTER_DOWN または ACTION_POINTER_UP でモーション イベントを生成します。
だから私は自分の活動で onTouchEvent 関数のオーバーライドを行いました:
@Override
public boolean onTouchEvent(MotionEvent MEvent)
{
motionaction = MEvent.getAction();
if(motionaction == MotionEvent.ACTION_DOWN)
{
System.out.println("DEBUG MESSAGE POINTER1 " + MEvent.getActionIndex() );
}
if(motionaction == MotionEvent.ACTION_POINTER_DOWN)
{
System.out.println("DEBUG MESSAGE POINTER2 " + MEvent.getActionIndex() );
}
}
残念ながら、2 番目の if は入力されません。アクティビティには 2 つのOnTouchListenerを持つ 2 つのビューが含まれています。アクティビティのビューがイベントを消費しない場合にのみonTouchEventが呼び出されることを知っているので、リスナーで false を返そうとしました。そのようにして、最初の指のタッチのみを認識できますが、これにより、リスナーが ACTION_UP イベントを受信するのを回避し、2 本目の指のタッチを認識できなくなります。また、リスナーで true を返そうとしましたが、手動で onTouchEvent 関数を呼び出した後、最初の指のタッチのみを認識できます。
私のコードで何が問題になっていますか?