1

我在圆圈上有一些文字,我希望用户能够触摸和拖动文本,并让它沿着圆圈移动......

我使用 Canvas 做到了这一点,但我不知道如何让它以这种方式响应触摸。我不反对重新开始并采用非画布方法。

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

圆圈上的文字

4

1 回答 1

2

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

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

现在,如果用户移动他的手指,您将收到更多带有 ACTION_MOVE 的事件。在这种情况下,您可能希望根据此事件与上一个事件之间的差异来移动所选文本。一旦你计算出文本的新位置,你就会调用invalidate()which 应该强制重绘。

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

于 2012-12-20T23:33:12.383 回答