私のアプリは、1本指と2本指のタッチを処理します。最初の指がACTION_MOVE
アクションを送信し、2 番目の指がACTION_POINTER_UP
同時にアクションを送信している可能性があります。
では、最初の指のアクションと 2 番目の指のアクションを取得するにはどうすればよいでしょうか。
私のアプリは、1本指と2本指のタッチを処理します。最初の指がACTION_MOVE
アクションを送信し、2 番目の指がACTION_POINTER_UP
同時にアクションを送信している可能性があります。
では、最初の指のアクションと 2 番目の指のアクションを取得するにはどうすればよいでしょうか。
これで、 で使用できるポインタ インデックスができましたMotionEvent.case
。どの指が下がっているかによって、さまざまなケースがあります。
また、ポインタ インデックスが何であっても、両方とも大文字と
MOVE
小文字が関連付けられていることに注意してください。ポインター ID にアクセスできない限り、ID で区別できます。
たとえばACTION_POINTER_1_DOWN
、2 番目の指に関連付けられます。
switch(action) {
case (MotionEvent.ACTION_DOWN):
break;
case (MotionEvent.ACTION_POINTER_1_DOWN): // Second finger
break;
case (MotionEvent.ACTION_MOVE):
if(pointer > 0) {
x = motionEvent.getX(pointer);
y = motionEvent.getY(pointer);
}
else {
x = motionEvent.getX();
y = motionEvent.getY();
}
break;
case (MotionEvent.ACTION_UP):
System.out.println("UP");
break;
case (MotionEvent.ACTION_POINTER_1_UP): // Second finger
System.out.println("1 UP");
break;
}