@Override public boolean onDrag(View view, DragEvent event) 如何获取绝对坐标
时间: 2024-01-13 15:02:26 浏览: 128
javascript获取对象的绝对坐标
在 `View.OnDragListener` 的 `onDrag()` 方法中,可以通过 `event` 参数获取拖拽事件的相关信息,包括原始坐标和拖拽操作的状态等。要获取拖拽事件的绝对坐标,可以使用 `View` 的 `getGlobalVisibleRect()` 方法和 `DragEvent` 的 `getX()` 和 `getY()` 方法。具体操作如下:
1. 获取 `View` 的全局可见矩形。
```
Rect viewRect = new Rect();
view.getGlobalVisibleRect(viewRect);
```
2. 获取 `DragEvent` 的原始 X 和 Y 坐标。
```
float x = event.getX();
float y = event.getY();
```
3. 计算 `DragEvent` 的绝对坐标。
```
float absoluteX = viewRect.left + x;
float absoluteY = viewRect.top + y;
```
这样就可以获取 `View.OnDragListener` 中的 `DragEvent` 的绝对坐标了。注意,如果要在 `onDrag()` 方法中获取绝对坐标,需要确保 `View` 已经经过布局测量并显示在屏幕上,否则获取的坐标可能不准确。
阅读全文