0

私のコードは、非常に単純化されており、次のとおりです。

    if(action == MotionEvent.ACTION_DOWN){
        x = me.getX();
        y = me.getY();
    }
    else if(action == MotionEvent.ACTION_UP){
        x = me.getX();
        y = me.getY();
    }
    else if(action == MotionEvent.ACTION_MOVE){
        x = me.getX();
        y = me.getY();
    }
    if(action == MotionEvent.ACTION_POINTER_2_DOWN){
        x2 = me.getX(1);
        y2 = me.getY(1);
    }
    if(action == MotionEvent.ACTION_POINTER_2_UP){
        x2 = me.getX(1);
        y2 = me.getY(1);
    }

追加したい

    if(action == MotionEvent.ACTION_POINTER_2_MOVE){
        x2 = me.getX(1);
        y2 = me.getY(1);
    }

しかし、もちろん

   MotionEvent.ACTION_POINTER_2_MOVE

本当のメソッドではありません。これを回避する方法が必要であることはわかっています。助言がありますか?

私の質問が理解できない場合、私が尋ねているのは、ポインターが移動したときに実行されるマルチタッチ方法はありますか? ところでグーグルは役に立ちません。

http://developer.android.com/reference/android/view/MotionEvent.htmlもチェックしましたが、やはり何も役に立ちませんでした

4

1 に答える 1

0

ドキュメントから:

モーションイベント内で個々のポインタが表示される順序は定義されていません。したがって、ポインタのポインタインデックスは、あるイベントから次のイベントに変わる可能性がありますが、ポインタがアクティブである限り、ポインタのポインタIDは一定のままであることが保証されます。getPointerId(int)メソッドを使用して、ポインターのポインターIDを取得し、ジェスチャ内の後続のすべてのモーションイベントにわたってポインターを追跡します。次に、連続するモーションイベントの場合、findPointerIndex(int)メソッドを使用して、そのモーションイベント内の特定のポインターIDのポインターインデックスを取得します。

ポインタIDを自分で取得して追跡し、移動したポインタを特定する必要があります。

http://developer.android.com/reference/android/view/MotionEvent.html

于 2013-01-08T17:14:04.660 に答える