Überprüfen Sie die Richtung war flinged in einem Motion-event-android

So, ich möchte erkennen, in welche Richtung der Benutzer bewegte seine finger an, wenn Sie den Bildschirm berühren
Recht jetzt seine Arbeit für 3 Richtungen, aber die "up" - Bewegung nicht genannt.

Dies ist mein code:

@Override
public boolean onTouchEvent(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
    //store the X value when the user's finger was pressed down
    downXValue = event.getX();
    downYValue = event.getY();
    break;
}

case MotionEvent.ACTION_UP: {
    //Get the X value when the user released his/her finger
    float currentX = event.getX();
    float currentY = event.getY();
        //check if horizontal or vertical movement was bigger
    if (Math.abs(downXValue - currentX) > Math.abs(downYValue)
        - currentY) {
    Log.e("motionevent", "x");
    //going backwards: pushing stuff to the right
    if (downXValue < currentX) {
        Log.e("motionevent", "right");

    }

    //going forwards: pushing stuff to the left
    if (downXValue > currentX) {
        Log.e("motionevent", "left");

    }

    } else {
    Log.e("motionevent", "y");
    if (downYValue < currentY) {
        Log.e("motionevent", "up");

    }
    if (downYValue > currentY) {
        Log.e("motionevent", "down");

    }
    }
    break;
}
}

    return true;
}

Gibt es ein Problem mit der überprüfung für die horizontale oder eine vertikale Bewegung? weil immer wenn ich eine up-Bewegung, rechts oder Links aufgerufen wird. nach unten funktioniert einwandfrei.

InformationsquelleAutor Yalla T. | 2012-09-06

Schreibe einen Kommentar