识别手势滑动的方向主要是用的 GestureDetector的onFling ,如果想回顾下GestureDetector 可以参考下面的链接地址
GestureDetector 文章
问题也比较简单下面给出代码:
public class FlingActivity extends AppCompatActivity {private GestureDetector gestureDetector;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_layout);gestureDetector = new GestureDetector(FlingActivity.this,new GestureDetector.SimpleOnGestureListener() {/*** e1: 第一次按下的位置* e2 当手离开屏幕 时的位置* velocityX 沿x 轴的速度* velocityY: 沿Y轴方向的速度* @param e1* @param e2* @param velocityX* @param velocityY* @return*/@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {// 手势向上滑动if (e1.getRawY() - e2.getRawY() > 200) {Toast.makeText(FlingActivity.this, "手势向上滑动", Toast.LENGTH_SHORT).show();return true;}// 手势向下滑动if (e2.getRawY() - e1.getRawY() > 200) {Toast.makeText(FlingActivity.this, "手势向下滑动", Toast.LENGTH_SHORT).show();return true;}// 手势向右滑动if ((e1.getRawX() - e2.getRawX()) > 200) {Toast.makeText(FlingActivity.this, "手势向右滑动", Toast.LENGTH_SHORT).show();return true;}// 手势向左边滑动if ((e2.getRawX() - e1.getRawX()) > 200) {Toast.makeText(FlingActivity.this, "手势向左边滑动", Toast.LENGTH_SHORT).show();return true; // 消费掉当前事件 不让当前事件继续向下传递}return super.onFling(e1, e2, velocityX, velocityY);}});}@Overridepublic boolean onTouchEvent(MotionEvent event) {return gestureDetector.onTouchEvent(event);}}