作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
过去,我编写了一个可以通过两次触摸来绘制线条的应用程序。我所做的是创建两个向量,一个用于指针 ID 0,一个用于指针 ID 1(因此其他任何内容都将被忽略)。我会缓冲要在我的 onTouch 方法中绘制的点,然后在我的表面绘制方法中为两条单独的线绘制线条。我同步了代码的这些部分,以便 UI 线程和图形线程不会互相吐槽。这很好用。
现在我想做的是相同的,但触摸次数不受限制。由于我有无限次触摸,并且屏幕上有任意数量的随机指针 ID,因此我无法简单地为多次触摸制作矢量,因为我不知道有多少次触摸。
什么是缓冲多个触摸的好方法,具有各种指针 ID,以便我可以绘制它们?
也许有一个多点触控绘图应用可供我引用?
谢谢,
最佳答案
一种解决方案可能是使用以整数作为键(pointerId)并以路径作为对象的映射。在触摸端,在 TOUCH_DOWN 上开始一条路径,将其添加到 map 中,然后每次移动时访问它。在上面,您可以将其从 map 中删除并将其“提交”到通用路径列表,独立于初始 pointerId(或者您可以将原始 pointerId 与路径一起存储)。
所以基本上,在绘制它们时,将路径保存在使用 pointerId 索引的 map 中,一旦绘制完成,就将它们保存在全局列表中。
关于android - 使用 SurfaceView 进行多点触控绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346901/
我是一名优秀的程序员,十分优秀!