0

重複の可能性:
ポインターの問題! (アンドロイド)

ポインターごとに 1 つの X 値と 1 つの Y 値を単純に取得し、おそらく何が起こっているのかを簡単に理解するために、ポインターごとにいくつかの異なるブール変数を取得するコードをどこでも検索してきました。

私は自分でコードに取り組んできましたが、思い通りに動作しません。X 座標と Y 座標の 4 つの異なるペアが保存されますが、問題は、1 本の指が画面から離されるたびに、すべてのポインター (ブール値の touch[] 内) がしばらくの間 false になることです。各ポインターを個別にする方法を知っている人はいますか?1本の指を画面から離すと、ブール配列のその値のみがfalseになりますか?

public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    int action = (event.getAction() & MotionEvent.ACTION_MASK);
    int pointCount = event.getPointerCount();

    for (int i = 0; i < pointCount; i++) {
        int id = event.getPointerId(i);

        if (id < MAX_NUMBER_OF_POINT) {

            xA[id] = (int) event.getX(i);
            yA[id] = (int) event.getY(i);

            if ((action == MotionEvent.ACTION_DOWN)
                    || (action == MotionEvent.ACTION_POINTER_DOWN)
                    || (action == MotionEvent.ACTION_MOVE)) {
                touching[id] = true;
            } else {

                touching[id] = false;
            }
        }
    }


    for (int i2 = 0; i2 < 5; i2++) {
        if (touching[i2] == false) {

            xA[i2] = 0;
            yA[i2] = 0;
        }
    }

    x1 = xA[0];
    x2 = xA[1];
    x3 = xA[2];
    x4 = xA[3];

    y1 = yA[0];
    y2 = yA[1];
    y3 = yA[2];
    y4 = yA[3];

    return true;
}

ありがとう!

4

1 に答える 1

0

変数を1 つだけ使用しaction、すべてのポインターをループしているため、それらはすべて同じになります。代わりにgetActionMaskedwithを使用してください。MotionEvent Android dev pagegetActionIndexを参照してください。

于 2012-08-11T21:59:15.617 に答える