у меня есть класс, расширенный от простого на жесте, и я работаю с методом onfling:
class MyGestureListener extends GestureDetector.SimpleOnGestureListener{
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
float e1_X = e1.getX();
float e1_Y = e1.getY();
float e2_X = e1.getX();
float e2_Y = e2.getY();
if(velocityX > 0 && velocityX > velocityY){
text.setText("Swipe left");
}else if(velocityX < 0 && velocityX < velocityY){
text.setText("Swipe right");
}else if(velocityY < 0 && velocityX > velocityY){
text.setText("Swipe down");
}else if(velocityY > 0 && velocityX < velocityY){
text.setText("Swipe up");
}
return super.onFling(e1, e2, velocityX, velocityY);
}
}
Я знаю, что это зависит от определенных углов, но я не могу это сделать, я пыталсясо скоростью X и скоростью Y, это работает, только если вы делаете это точно.Но то, что я хочу, это угол «ошибки»: если вы проводите по диагонали, например, вверх и вправо, мне нужно выбрать, какой путь лучше.