2017-01-20 3 views
-1

Wenn sich der Finger auf dem Bildschirm bewegt, möchte ich fortlaufend x- und y-Koordinaten auf MotionEvent.ACTION_MOVE Event verfolgen.Wie verfolge ich die x- und y-Koordinaten im onTouch Event?

währenddessen sollte ich in der Lage sein zu wissen, ob x, y-Werte zunehmen oder abnehmen. Ist es möglich, dies zu tun, würde jede Hilfe geschätzt werden.

+0

motionEvent.getX(), motionEvent.getY()? Erstelle einfach einige Variablen wie 'lastX',' lastY' und vergleiche sie mit motionEvent.getX() und so weiter – Ekalips

+0

@Ekalips Ich habe diesen Code ausprobiert, konnte aber nicht initX = e.getX(); \t \t \t \t \t \t initY = e.getY(); \t \t \t \t \t \t a = e.getX(); \t \t \t \t \t \t b = e. – jay

Antwort

0

Sie müssen nur die Start erfassen Koordinaten während des ACTION_DOWN Ereignis und vergleichen sie mit den Koordinaten während ACTION_MOVE

Etwas wie:

public class MyView extends ViewGroup { 

    private float startX; 
    private float startY; 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

     switch (event.getAction()) { 

      case MotionEvent.ACTION_DOWN: 
       startX = event.getX(); 
       startY = event.getY(); 
       break; 

      case MotionEvent.ACTION_MOVE: 
       float dx = startX - event.getX(); 
       float dy = startY - event.getY(); 
       break; 
     } 

     return true; 
    } 
} 

Wenn Sie es noch mehr verfolgen wollen, dann Sie können eine Hilfsklasse erstellen, die ein Beispiel der Ereignisse verfolgt, um Ihnen eine Richtung zu geben, usw.

Verwandte Themen