设置遮罩层的触摸事件监听器,即在遮罩层上重写 onTouchEvent() 方法,那如何写 onTouchEvent() 方法
时间: 2024-03-25 10:37:06 浏览: 117
Android onTouchEvent事件中onTouch方法返回值(介绍)
在Android中,可以通过在遮罩层上重写 onTouchEvent() 方法来设置触摸事件监听器。下面是一个示例代码,演示如何在遮罩层上获取用户的滑动事件:
```java
public class MyOverlayView extends View {
private float mLastTouchX, mLastTouchY;
public MyOverlayView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
final int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN: {
// 用户按下手指时记录触摸点的坐标
mLastTouchX = event.getX();
mLastTouchY = event.getY();
break;
}
case MotionEvent.ACTION_MOVE: {
// 用户在移动手指时计算滑动距离
final float x = event.getX();
final float y = event.getY();
final float dx = x - mLastTouchX;
final float dy = y - mLastTouchY;
// TODO: 将滑动距离传递给需要处理滑动事件的组件
break;
}
case MotionEvent.ACTION_UP: {
// 用户抬起手指时清除触摸点的坐标
mLastTouchX = 0;
mLastTouchY = 0;
break;
}
}
return true;
}
}
```
在上面的代码中,我们通过重写 onTouchEvent() 方法来实现触摸事件监听器。在 ACTION_DOWN 事件中记录触摸点的坐标,在 ACTION_MOVE 事件中计算滑动距离,并将其传递给需要处理滑动事件的组件。在 ACTION_UP 事件中清除触摸点的坐标,以便下一次触摸事件的处理。最后,我们返回 true,表示已经消费了触摸事件,不再向下传递。
阅读全文