マルチタッチジェスチャが必要なAndroidでアプリケーションを作成しています! 私のデバイス Novo 7 (ainol) は 5 つのタッチ ポイントをサポートしていることがわかりました。このようなビューに onTouch を実装します
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_DOWN || event.getAction() == MotionEvent.ACTION_DOWN){
Log.i("Touch", "Touch "+event.getPointerCount() + " -- Position " +
event.getRawX()+","+event.getRawY());
}
else if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP|| event.getAction() == MotionEvent.ACTION_UP){
Log.i("Touch up","Pointer = "+event.getPointerCount());
}
return true;
}
最初は、すべて問題ありません。ログは 5 つのメッセージで完全に出力されます。しかし、画面の 6 番目のポイントをタッチして離すと、問題が発生しました。ログは 5 メッセージを再出力しました。ここで何が起こっているのか教えてください。私の悪い英語で申し訳ありません。これが初歩的な質問である場合は! どうもありがとうございました!
----------- 編集済み--------------------
ACTION_POINTER_UP と ACTION_UP をログに記録した後、6 本目の指が画面にタッチ (タッチダウン) すると、現在のすべてのポインター (5 つのポインター) がイベントから解放されることがわかりました (たとえば、action_up と action_pointer_up は 5 つの前のポインターで呼び出されます)。さて、問題は、タッチポイントの制限に達したときに、アンドロイドがこの状況をどのように処理するかです。