Делаю приложение для управления SwipeEvent, но работает только с левыми и правыми слева. Валидации вверх и вниз не работают. Извините за сообщения в Toast на португальский. В основном:SwipeEvent на Android-приложении
(x1 <x2) - left to right/(x1> x2) - right to left/(y1 <y2) - up to down
(y1> y2) - down to up
I Changed "GetX() и GetY()" в "getRawX() и getRawY()". Результат остается тем же. Например, если я делаю движение салфетки слева направить отображаются тосты «Размах слева направо (КИ) и Swipe сверху вниз (не КИ).
Может кто-то пожалуйста, помогите мне?
Мой код:
public class MainActivity extends ActionBarActivity {
float x1,x2;
float y1,y2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//onTouchEvent() é o metodo chamado quando o usuário realiza um evento de toque na tela
//Método que trata evento de toque como Swipe
public boolean onTouchEvent(MotionEvent touchevent)
{
switch (touchevent.getAction())
{
//Ao usuário tocar na tela pela primeira vez, obtem as coordenadas x e y
case MotionEvent.ACTION_DOWN: {
x1 = touchevent.getX();
y1 = touchevent.getY();
break;
}
case MotionEvent.ACTION_UP: {
x2 = touchevent.getX();
y2 = touchevent.getY();
//if para validar swipe da esquerda para direita
if(x1<x2)
{
Toast.makeText(this, "Swipe Esquerda para Direita", Toast.LENGTH_SHORT).show();
}
//if para validar swipe da direita para esquerda
if(x1>x2)
{
Toast.makeText(this, "Swipe Direita para Esquerda", Toast.LENGTH_SHORT).show();
}
//if para validar swipe de cima para baixo
if(y1<y2)
{
Toast.makeText(this, "Swipe Cima para Baixo", Toast.LENGTH_SHORT).show();
}
//if para validar swipe de baixo para cima
if(y1>y2)
{
Toast.makeText(this, "Swipe Baixo para Cima", Toast.LENGTH_SHORT).show();
}
break;
}
}
return false;
}
}
Не нужно ли возвращать 'истинный' в методе выше? – YuDroid