gpt4 book ai didi

android - Android 拖影的 'target point' 如何从它的 'touch point' 移开?

转载 作者:可可西里 更新时间:2023-11-01 18:48:03 30 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序可以更精确地控制拖动对象的放置位置。但是对于电容式触摸屏,用户的手指总是会遮住放置目标。

Android 允许通过覆盖 View.DragShadowBuilder.onProvideShadowMetrics() 来指定拖动阴影上的“触摸点”方法。但似乎没有办法提供一个移位的“目标点”。我想从拖动阴影的接触点转换一个箭头,它可以更精确地移动到放置目标上。

问题:实现此目标的最简单/最优雅的方法是什么?

我想我可以在拖动操作期间在屏幕上放置一个不可见的层,它会记录触摸点的坐标,转换它们并将它们发送到实际的放置目标 - 本质上是重新实现拖动事件。但我想知道是否有更简单的解决方案。或者如果其他人以前做过类似的事情。


编辑:这是我想要的那种拖影的粗略模型:

enter image description here

最佳答案

Question: What would be the simplest / most elegant way to achieve this?

如您所见,您不能使用 View.DragShadowBuilder 类,因为无法将阴影 handle 的点与所有已发送拖动事件所考虑的点分开。我也没有看到另一种重新实现拖动系统的方法,即使是通过扩展 View 类(这会很麻烦)。

I think I could put an invisible layer over the screen during the drag operation which registers the coordinates of the touch-point, translates them and sends them to the actual drop-targets - re-implement drag-events, essentially.

one way这样做很简单,如果您没有复杂的拖放要求的话。

But I'd like to know if there is a simpler solution.

您可能最好扩展基本的 Android 布局(至少是您将使用的布局)并在其中实现拖动逻辑。这样您就可以避免管理另一层以及进行一些额外计算的需要。我扩展了 RelativeLayout 类来实现您 can find here 的逻辑.我在 Activity like this 中使用过该类(class)其中有 this layout .该示例是基础的,需要更多的工作(和思考)使其更加灵活,并解决一些潜在的问题。

关于android - Android 拖影的 'target point' 如何从它的 'touch point' 移开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526701/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com