1

我正在开发一个应用程序(适用于 iOS 和 Android),在该应用程序中,我需要允许用户从图库中选择照片并通过在图像上绘制来包围某些项目。一旦用户完成绘图,就会提示他在弹出窗口中命名该项目。命名后,项目被添加到项目表中,一个箭头自动连接圆圈和项目。照片和物品都有单独的表格。

我使用 Ti.Paint 进行绘图,但它只支持通过手指进行动态(手动)绘图。该模块没有任何方法可以以编程方式绘制线条、圆形等形状。此外,它不提供触摸事件,因此我无法检测到用户何时停止绘图。然后我使用了 Ti.Canvas,但它只支持静态绘图,即用户不能用手指动态绘图,而且它只支持 iOS。我在两天内尝试了很多触摸事件来做到这一点无济于事。这是我使用 Ti.Canvas 进行触摸绘图的代码:

      canvas.addEventListener('touchstart',function(e) {
          canvas.begin();
          canvas.beginPath();
          canvas.moveTo(e.x,e.y);
      })

      canvas.addEventListener('touchmove',function(e) {
          canvas.lineTo(e.x,e.y);
          canvas.stroke();
      })

      canvas.addEventListener('touchend',function(e) {
          canvas.commit();
      })

但不幸的是,这不起作用。有人可以告诉我如何解决这个问题。是否存在一些支持静态(编程)和手动(通过触摸)绘图的模块或库。我将不胜感激。谢谢。

4

1 回答 1

0

我知道我有一个使用 touchend 的例子。在此示例代码中,可能在 IOS 和 Android 上的操作不同,但有一个 touchend 示例。 http://developer.appcelerator.com/blog/2010/05/building-an-advanced-transaction-ui-with-titanium.html

Ti.Paint 模块的源代码是可用的,你可以添加你想要的功能。 https://github.com/appcelerator/titanium_modules/tree/master/paint

如果你不想走那条路,有一个画布模块可以让你创建线条,虽然我没有测试过。这似乎是 IOS 特定的。 https://github.com/appcelerator/titanium_modules/tree/master/canvas/mobile/ios

对于 Android,看起来有一个模块。 https://marketplace.appcelerator.com/apps/5941?494596078

所以你有一些选择可以研究。

于 2013-07-09T14:21:27.790 回答