View.OnDragListener 的onDrag(View view, DragEvent event) 判断是否 事件在一个区域内
时间: 2024-02-22 13:56:43 浏览: 121
Android判断touch事件点是否在view范围内的方法
5星 · 资源好评率100%
可以通过事件的坐标位置和区域的范围来判断。可以先获取事件的坐标位置,然后通过区域的 left、top、right、bottom 四个属性来判断事件是否在区域内。具体实现可以参考以下代码:
```
@Override
public boolean onDrag(View view, DragEvent event) {
int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
// do something
return true;
case DragEvent.ACTION_DRAG_ENTERED:
// do something
return true;
case DragEvent.ACTION_DRAG_LOCATION:
int x = (int) event.getX();
int y = (int) event.getY();
Rect rect = new Rect(left, top, right, bottom);
if (rect.contains(x, y)) {
// event is in the specified area
}
return true;
case DragEvent.ACTION_DRAG_EXITED:
// do something
return true;
case DragEvent.ACTION_DROP:
// do something
return true;
case DragEvent.ACTION_DRAG_ENDED:
// do something
return true;
default:
break;
}
return false;
}
```
其中,left、top、right、bottom 是指定区域的范围,可以根据实际需求进行设置。在 ACTION_DRAG_LOCATION 的事件中,通过事件的 getX() 和 getY() 方法获取事件的坐标位置,然后通过 Rect 的 contains() 方法判断事件是否在指定区域内。
阅读全文