2017-02-03 1 views
0

Wie kann ich entscheiden, ob die Berührungsposition der Benutzereingabe (wahrscheinlicher) links, oben, rechts oder unten von einem bestimmten Punkt ist? Ich weiß, wie ich die Position der Berührung erreichen kann, aber ich weiß nicht, wie ich entscheiden soll, welcher "Weg" es ist.Entscheiden Sie, ob die Berührungsposition von einem bestimmten Punkt aus links, oben, rechts oder unten liegt

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    if(event.getAction() == MotionEvent.ACTION_DOWN){ 
     //... 
    } 
    return false; 
} 

Demonstration Bild:

enter image description here

+2

Haben Sie versucht, Mathematik zu verwenden? –

+0

Nein, da ich nicht weiß, wie man es für diese Diagonalen benutzt. – BlackJack

+1

@BlackJack Benötigen Sie diese genauen Winkel? Wenn nicht, würde es ausreichen zu prüfen, ob "diese Berührung mehr nach unten als nach rechts ist"? – Houseman

Antwort

2

das sind 45-Grad-Winkel Unter der Annahme, dann

dy = pointY- currentY 
dx = pointX- currentX 
if(abs(dy) > abs (dx) && dy <0) return bottom 
else if(abs(dy) - abs (dx)) return top 
else if(dx < 0) return right 
else if (dx > 0) return left 
else return same point 

Wenn diejenigen, die nicht 45-Grad-Winkel sind, sind Sie gehen zu haben Verwenden Sie trig, um herauszufinden, wo die Grenzen liegen.

+0

Ja, sie sind 45 ° (imaginär, um die Entscheidungsbereiche zu begrenzen). Danke für Ihre Lösung. – BlackJack

+0

Sind nicht oben/unten, rechts/links invertiert? – BlackJack

+0

Ja, das sind sie. Entschuldigung, habe den Code aktualisiert –

Verwandte Themen