【问题标题】:Multitouch drawing with surfaceview使用 SurfaceView 进行多点触控绘图
【发布时间】:2011-06-14 16:33:49
【问题描述】:

过去,我编写了一个应用程序,它可以通过两次触摸来绘制线条。我所做的是创建两个向量,一个用于指针 ID 0,一个用于指针 ID 1(因此其他任何内容都会被忽略)。我会缓冲要在我的 onTouch 方法中绘制的点,然后在我的表面绘制方法中为两条单独的线绘制线。我同步了代码的这些部分,这样 UI 线程和图形线程就不会互相吐槽。这很好用。

现在我想做的是相同的,但触摸次数不受限制。由于我有无限的触摸,并且屏幕上活动的指针 ID 是任意数量的,因此我无法简单地为多个触摸制作矢量,因为我不知道有多少触摸。

什么是缓冲多个触摸的好方法,使用各种指针 ID 以便我可以绘制它们?

也许有一个多点触控绘图应用可供我参考?

谢谢,

【问题讨论】:

  • 我也不想通过这些向量来查找特定指针 ID 的确切位置。

标签: android multi-touch surfaceview


【解决方案1】:

一种解决方案是使用整数作为键(pointerIds)和路径作为对象的映射。在触摸端,在 TOUCH_DOWN 上开始一条路径,将其添加到地图中,然后每次移动时访问它。在上面,您可以将其从地图中删除并将其“提交”到通用路径列表,独立于初始pointerId(或者您可以将原始pointerId与路径一起存储)。

所以基本上,当它们被绘制时,将路径保存在使用pointerId索引的地图中,一旦它们完成,只需将它们保存在全局列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多