飞道的博客

Android 手势识别向左,右,上,下,滑动的方向

505人阅读  评论(0)

识别手势滑动的方向主要是用的     GestureDetector的onFling ,如果想回顾下GestureDetector 可以参考下面的链接地址

GestureDetector 文章

问题也比较简单下面给出代码:


  
  1. public class FlingActivity extends AppCompatActivity {
  2. private GestureDetector gestureDetector;
  3. @Override
  4. protected void onCreate(@Nullable Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main_layout);
  7. gestureDetector = new GestureDetector(FlingActivity. this,
  8. new GestureDetector.SimpleOnGestureListener() {
  9. /**
  10. * e1: 第一次按下的位置
  11. * e2 当手离开屏幕 时的位置
  12. * velocityX 沿x 轴的速度
  13. * velocityY: 沿Y轴方向的速度
  14. * @param e1
  15. * @param e2
  16. * @param velocityX
  17. * @param velocityY
  18. * @return
  19. */
  20. @Override
  21. public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
  22. float velocityY) {
  23. // 手势向上滑动
  24. if (e1.getRawY() - e2.getRawY() > 200) {
  25. Toast.makeText(FlingActivity. this, "手势向上滑动", Toast.LENGTH_SHORT).show();
  26. return true;
  27. }
  28. // 手势向下滑动
  29. if (e2.getRawY() - e1.getRawY() > 200) {
  30. Toast.makeText(FlingActivity. this, "手势向下滑动", Toast.LENGTH_SHORT).show();
  31. return true;
  32. }
  33. // 手势向右滑动
  34. if ((e1.getRawX() - e2.getRawX()) > 200) {
  35. Toast.makeText(FlingActivity. this, "手势向右滑动", Toast.LENGTH_SHORT).show();
  36. return true;
  37. }
  38. // 手势向左边滑动
  39. if ((e2.getRawX() - e1.getRawX()) > 200) {
  40. Toast.makeText(FlingActivity. this, "手势向左边滑动", Toast.LENGTH_SHORT)
  41. .show();
  42. return true; // 消费掉当前事件 不让当前事件继续向下传递
  43. }
  44. return super.onFling(e1, e2, velocityX, velocityY);
  45. }
  46. });
  47. }
  48. @Override
  49. public boolean onTouchEvent(MotionEvent event) {
  50. return gestureDetector.onTouchEvent(event);
  51. }
  52. }

 


转载:https://blog.csdn.net/qq_33210042/article/details/108801875
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场