1

我正在研究一个应用程序(适用于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(); 
     }) 

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

回答

0

我知道我有一个使用touchend的例子。在这个例子中,IOS和Android都可能无法运行相同的代码,它有一个示例。 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

所以你有一些选择,看看。

+0

哪个模块更适合以下...我想用三个连接线和触摸事件的方块进行控制,可以改变iOS/Android的位置和形状。它没有绘制控制在用户绘制..只是改变形状。 – JRC