ev.getActionMasked() == ACTION_MOVE の場合は
pointerIndex = ev.getActionIndex()
pointerId = ev.getPointerId(activePointerIndex);
が 0 になる。
つまり、「どの指が動いたか」という事を識別できない。
移動量とかを使いたい場合、イベントが起こる毎に、ID と 座標を対応付けて保存する必要があるので結構面倒くさい。移動先の座標を使うだけなら、下のようにループで全部のタッチ情報を処理すれば、無駄はあるけどそこまで大変ではない。
case MotionEvent.ACTION_MOVE:
int count = ev.getPointerCount();
boolean alreadyMoved = false;
for (int c = 0; c < count; c++){
int pointerId = ev.getPointerId(c);
float x = ev.getX(c);
float y = ev.getY(c);
...
}
break;
0 件のコメント:
コメントを投稿