我在圆圈上有一些文字,我希望用户能够触摸和拖动文字,并限制其沿圆圈移动...

我使用Canvas已经走了这么远,但我不知道如何使它以这种方式响应触摸。我不反对重新开始并采取非画布方法。

我怎样才能做到这一点?伪代码将不胜感激。

最佳答案

我可能是错的,但考虑到这是一块画布。然后,您的工作就是检测被触摸的文本。

为视图设置onTouchListener后,您将获得ACTION_DOWN事件的事件坐标。您检查并获得感动的文本。如果没有,则返回false。否则,返回true。

现在,如果用户移动手指,您将通过ACTION_MOVE收到更多事件。在这种情况下,您可能希望根据此事件和最后一个事件之间的差异来移动所选文本。一旦计算出文本的新位置,就调用invalidate(),这将强制重画。

最后,当用户停止移动时,您将收到带有ACTION_UP的事件。那就是当您不得不将文本放回原始位置或任何您想要的地方。

08-18 08:47
查看更多