钛的静态和动态绘图/绘画

时间:2013-07-09 08:43:26

标签: javascript drawing titanium titanium-mobile titanium-modules

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

我使用Ti.Paint进行绘图,但它只支持通过手指绘制动态(手动)。这个模块没有任何方法以编程方式绘制线,圆等形状。此外,它不提供触摸事件,因此我无法检测用户何时停止绘图。然后我使用了Ti.Canvas,但它只支持静态绘图,即用户无法动态绘制手指,也只支持iOS。我在2天内通过触摸事件做了很多尝试来做到这一点无济于事。这是我使用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();
      })

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

1 个答案:

答案 0 :(得分: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

所以你有一些选择可供选择。