Ich muss die Touch-Startposition (X, Y), die Touch-Move-Position und die Touch-Endposition des Bildschirms in Android erhalten.
92
@Override
public boolean onTouchEvent(MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
In den drei Fällen können Sie auf verschiedene Arten von Ereignissen reagieren, in diesem Beispiel durch Antippen oder Ziehen oder erneutes Anheben des Fingers.
Ergänzende Antwort
Gegeben ein
OnTouchListener
auf eine Ansicht gesetzt:
Auf diese Weise erhalten Sie die Koordinaten des Berührungsereignisses relativ zur Ansicht, der der Berührungslistener zugewiesen ist. Die obere linke Ecke der Ansicht ist
(0, 0)
. Wenn Sie Ihren Finger über die Ansicht bewegen, isty
dies negativ. Wenn Sie Ihren Finger links von der Ansicht bewegen, istx
dies negativ.Wenn Sie die Koordinaten relativ zur oberen linken Ecke des Gerätebildschirms möchten, verwenden Sie die Rohwerte.
verbunden
quelle
return false
sonst wird es die Berührung verbrauchen.getRawX()
undgetRawY()
sollte die absoluten Koordinaten der Berührungsposition in jeder Ansicht zurückgeben, zu der der Hörer hinzugefügt wird. Aber Sie haben Recht, wenn darüber eine andere Ansicht zurückgegebentrue
wird, werden keine niedrigeren Ansichten über Berührungsereignisse benachrichtigt.getX()
undgetY()
arbeite einwandfrei (keine NotwendigkeitgetRawX/Y()
).onInterceptTouchEvent
und dann zurückkehren können,false
damit das Ereignis wie gewohnt verarbeitet wird.quelle
Hier ist der Koltin-Stil, den ich in meinem Projekt verwende und der sehr gut funktioniert:
quelle