dragListener 获取绝对坐标
时间: 2023-09-03 12:07:29 浏览: 90
您好!关于您的问题,如果想要获取拖拽事件的绝对坐标,可以使用View的getLocationOnScreen()方法和getRawX()、getRawY()方法。具体实现步骤如下:
1. 在onDrag()方法中获取View的绝对坐标:
```
int[] location = new int[2];
v.getLocationOnScreen(location); // 获取View在屏幕中的位置
```
2. 在onDrag()方法中获取拖拽事件的绝对坐标:
```
float x = event.getRawX();
float y = event.getRawY();
```
3. 计算拖拽事件相对于View的坐标:
```
float offsetX = x - location[0];
float offsetY = y - location[1];
```
最终得到的offsetX和offsetY即为拖拽事件在View中的坐标。希望这些信息可以帮助到您。
相关问题
pywinauto 获取控件绝对坐标
可以使用 Pywinauto 的 `get_properties()` 方法获取控件的属性信息,其中包括控件的坐标信息。如果您想获取控件在屏幕上的绝对坐标,可以结合使用 `get_properties()` 方法和 `handle` 属性来实现。以下是一个示例代码:
``` python
from pywinauto import Application
# 启动应用程序
app = Application().start("notepad.exe")
# 获取主窗口句柄
main_dlg = app.UntitledNotepad
# 获取编辑框控件句柄
edit_ctrl = main_dlg.Edit
# 获取控件属性信息
ctrl_props = edit_ctrl.get_properties()
# 获取控件在屏幕上的绝对坐标
ctrl_x, ctrl_y = edit_ctrl.handle_to_client_point(0, 0)
screen_x = main_dlg.rectangle().left + ctrl_x
screen_y = main_dlg.rectangle().top + ctrl_y
print("控件在屏幕上的绝对坐标为:({}, {})".format(screen_x, screen_y))
# 关闭应用程序
app.kill()
```
该代码将启动记事本应用程序,并获取其编辑框控件的绝对坐标信息。您可以根据需要修改代码来选择其他控件并获取它们的位置信息。
获取控件绝对坐标 pywinauto
要获取 Pywinauto 中控件的绝对坐标,你可以使用 `get_properties()` 方法来获取控件的属性。然后,你可以使用控件的 `rectangle()` 方法来获取控件的位置和大小信息。接着,你可以使用 Pywinauto 的 `win32functions.MapWindowPoints()` 方法将控件的位置转换为屏幕上的绝对坐标。
以下是一个示例代码:
```python
from pywinauto import Application, win32functions
app = Application().connect(title='Your window title')
control = app.YourWindow.YourControl
# 获取控件的属性
props = control.get_properties()
print(props)
# 获取控件的位置和大小信息
left, top, right, bottom = control.rectangle()
# 获取控件所在的窗口句柄
hwnd = control.handle
# 将控件的位置转换为屏幕上的绝对坐标
pt1 = (left, top)
pt2 = (right, bottom)
win32functions.MapWindowPoints(hwnd, 0, pt1, 1)
win32functions.MapWindowPoints(hwnd, 0, pt2, 1)
x1, y1 = pt1
x2, y2 = pt2
print(f"控件左上角坐标为:({x1}, {y1})")
print(f"控件右下角坐标为:({x2}, {y2})")
```
这个示例代码连接到一个指定窗口并获取其控件的位置和大小信息。然后,它获取了控件所在的窗口句柄,并使用 `MapWindowPoints()` 方法将控件的位置转换为屏幕上的绝对坐标。最后,它打印出了控件的左上角和右下角坐标。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)