android 手势上下滑动
时间: 2023-09-03 09:11:56 浏览: 62
在 Android 中,可以使用 `GestureDetector` 类来检测手势,下面是一个例子,演示如何检测上下滑动手势:
1. 创建一个 `GestureDetector` 对象和一个 `View.OnTouchListener` 对象:
```
GestureDetector mGestureDetector;
View.OnTouchListener mGestureListener;
```
2. 初始化 `mGestureDetector` 和 `mGestureListener` 对象:
```
mGestureDetector = new GestureDetector(context, new MyGestureListener());
mGestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
};
```
3. 在需要检测手势的 `View` 上设置 `mGestureListener` 监听器:
```
myView.setOnTouchListener(mGestureListener);
```
4. 实现 `MyGestureListener` 类,检测手势:
```
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;
@Override
public boolean onDown(MotionEvent event) {
return true;
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
boolean result = false;
try {
float diffY = event2.getY() - event1.getY();
if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
if (diffY > 0) {
// 上滑
} else {
// 下滑
}
result = true;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return result;
}
}
```
在 `onFling` 方法中检测手势方向和速度,超过一定阈值时,判断为有效的上下滑动手势。