Ü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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie Fehler in Ihrer Bewegung Berechnung. Ich habe es behoben, das ist auch ok jetzt.
ja, ich hatte eine falsch gesetzte Klammer in der Zeile
if (Math.abs(downXValue - currentX) > Math.abs(downYValue)-currentY)
- und auch mixed-up&down-vielen Dank !InformationsquelleAutor Chinmoy Debnath
Können Sie
GestureDetector.OnGestureListener
- Schnittstelle, die bietet mehrere Methoden, um zu erkennen, touch-Ereignisse: scrollen, Seitensprung, etc.Verwendung:
Ab jetzt alle Veranstaltungen sind anerkannt und an die angegebene Methode.
Wie über das tun einige Mathe: Steigung = Tangens (y2 - y1)/(x2 - x1)
InformationsquelleAutor hsz