我在圆圈上有一些文字,我希望用户能够触摸和拖动文本,并让它沿着圆圈移动......
我使用 Canvas 做到了这一点,但我不知道如何让它以这种方式响应触摸。我不反对重新开始并采用非画布方法。
我怎样才能做到这一点?伪代码将不胜感激。
我在圆圈上有一些文字,我希望用户能够触摸和拖动文本,并让它沿着圆圈移动......
我使用 Canvas 做到了这一点,但我不知道如何让它以这种方式响应触摸。我不反对重新开始并采用非画布方法。
我怎样才能做到这一点?伪代码将不胜感激。
我可能错了,但考虑到这是一张画布。然后,您的工作就是检测触摸了哪些文本。
为视图设置 onTouchListener 后,您将获得 ACTION_DOWN 事件的事件坐标。您检查并获取被触摸的文本。如果没有,则返回 false。否则,返回真。
现在,如果用户移动他的手指,您将收到更多带有 ACTION_MOVE 的事件。在这种情况下,您可能希望根据此事件与上一个事件之间的差异来移动所选文本。一旦你计算出文本的新位置,你就会调用invalidate()
which 应该强制重绘。
最后,当用户停止移动时,您将收到一个带有 ACTION_UP 的事件。那就是您必须将文本放回其原始位置或任何您想要的位置。