Jon*_*Fry 6 android drag-and-drop
我在获取 DragEvent ACTION_DROP 的 X、Y 坐标时遇到问题。
我正在尝试为 gridview 单元格拖放设置动画,将单元格从发布点的 X、Y 设置为新的 X、Y。
下面是我用来尝试获取 X、Y 坐标的代码。但是它不会返回我期望的值。
@Override
public boolean onDrag(View v, DragEvent event) {
switch (action) {
case DragEvent.ACTION_DROP:
float x = event.getX();
float y = event.getY();
break;
}
}
Run Code Online (Sandbox Code Playgroud)
将第一个 gridview 单元格拖动到右侧的相邻单元格会给我这些值。
掉落 X,Y: 176.0,127.0
SourceView X,Y: 0.0,0.0
目标视图 X,Y 360.0,0.0
谁能指出我如何获得 DragEvent 释放点的 X、Y 坐标的正确方向?或者解释一下 DragEvent 的 getX() 和 getY() 实际返回什么?
谢谢
正如文档中记录的那样,
event.getX(); event.get(y);
Run Code Online (Sandbox Code Playgroud)
返回视图内拖动操作的位置。
getX() 和 getY() 方法提供 View 对象边界框内拖动点的 X 和 Y 位置。
因此,为了获取放置位置的绝对坐标,您可以重写 GridView onTouchEvent 并获取 event.getRawX()、event.getRawY() 的值。
如果GridView中的每个单元格都接受dragEvent,您可以采用获取onDrop事件的View,并执行类似的操作来检索坐标:
@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DROP:
int[] oldFolderCellPosition = new int[2];
v.getLocationOnScreen(oldFolderCellPosition);
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4291 次 |
| 最近记录: |