次のコードは、テスト アプリで、surfaceView を拡張するクラスで使用される実際のコードです。
@Override
public void onDraw(Canvas canvas)
{
canvas.drawCircle(touched_x, touched_y, 50, myPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
touched_x = event.getX();
touched_y = event.getY();
return true;
}
それは基本的にあなたの指が行くところを描きます。追跡するかどうかをテストします。
2 本目の指を追加しても、最初の指を追跡できます。しかし、3番目を追加すると、停止します。そこから何をしても構いません。すべての指を離してやり直さない限り、追跡されません。
1 本の指を 3 本と見なすことがあるからです。指の間のこのテスト距離を克服することはできますが、それでも問題は解決しません。
薬指が当たるとトラッキングがフリーズします。action.Cancel は呼び出されません。
人差し指がいつどこで離されるかを知ることが重要です。
ただし、最後のイベントは だったと考えられMotionEvent.ACTION_MOVE
ます。または。MotionEvent.ACTION_UP
_MotionEvent.ACTION_CANCEL
現在、1 本の指が 3 本になる可能性があるためです。私のアプリは、特定の画像スクロールの読み込みに失敗したように見えます。