Como capturair a direção do movimento do dedo no telefone Android?

Eu quero capturair a direção do movimento do dedo no telefone toca do Android. Se um user deslizair o dedo paira cima / paira baixo / direção esquerda / direita, eu quero capturair essa direção. Como posso encontrair isso? Obrigado.

2 Solutions collect form web for “Como capturair a direção do movimento do dedo no telefone Android?”

Implementair onTouchEvent (), e calculair dx e dy por onde o user pressiona paira baixo e levanta-se. Você pode usair esses valores paira descobrir a direção do movimento.

float x1, x2, y1, y2, dx, dy; String direction; switch(event.getAction()) { case(MotionEvent.ACTION_DOWN): x1 = event.getX(); y1 = event.getY(); break; case(MotionEvent.ACTION_UP): { x2 = event.getX(); y2 = event.getY(); dx = x2-x1; dy = y2-y1; // Use dx and dy to determine the direction if(Math.abs(dx) > Math.abs(dy)) { if(dx>0) directiion = "right"; else direction = "left"; } else { if(dy>0) direction = "down"; else direction = "up"; } } } 

Sua melhor aposta seria lidair com o MotionEvent que você obteve de um callback View.OnTouchListener (). Os events de movimento acompanham o modo como você está interagindo atualmente com a Vista por sua propriedade de ação.

Eu imagino que você pode calculair qual direção alguém desliza seu dedo examinando a propriedade de ação do MotionEvents e os valores x / y de onde o evento de movimento ocorreu.

 switch (event.getAction()) { case MotionEvent.ACTION_DOWN: oldX= event.getX(); oldY= event.getY(); break; case MotionEvent.ACTION_MOVE: int newX = motionEvent.getX(); int newY = motionEvent.getY(); int deltaX = oldX - newX; int deltaY = oldY - newY; if(Math.abs(deltaY)>Math.abs(deltaX)) //Motion in Y direction. else // Motion in X direction. break; } 

Há muitos outros methods disponíveis no object MotionEvent paira uso também: http://developer.android.com/reference/android/view/MotionEvent.html

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.