我正在制作Android应用,我想要这个功能: 用户可以拖动一些视图,当他在另一个视图上移动时,我可以注册他在某个视图上删除并对该视图进行一些操作。
例如:
有两个ImageView,一个蓝色一个红色,还有第三个ImageView,当用户将第三个ImageView放在蓝色上时我必须调用method1()
,否则当用户放入红色时我必须调用{{ 1}}。
我已经实现了standrad拖动侦听器:
method2()
答案 0 :(得分:1)
您不需要计算rects。你应该调用setOnDragListener
两次,一次在红色图像视图上处理它上面的拖放事件,一次调用蓝色图像视图来处理它上面的拖放事件。另外,为了防万一,我还没有看到您需要在触摸事件期间拖动用户的视图上调用startDrag
的代码以开始拖动。
答案 1 :(得分:0)
因此,您需要调用 view.startDrag
才能收听回调。
您可以在 ACTION_MOVE
中移动您的视图,并在 ACTION_DROP
中检查交叉点。
这也可以通过OnTouchListener
直接实现。
您可以获得完整的示例 here。