2011-12-07 77 views
0

我需要绘制自定义形状并用纯色或图案填充它。我已经实现了形状,并能够用2d html5 canvas和javascript来改变填充颜色。绘制图像并用颜色或图案动态填充

但是我放弃了画布的方式,因为它是一个手机的网络应用程序,我发现在一个页面上有几个画布在特定的旧手机上运行得非常慢。

任何人都可以建议一个可行的替代方法,牢记速度很重要吗?我一直在考虑:

用css绘图,但它看起来像很多标记和混乱创造一个相对简单的形状。

SVG - 直到昨晚才知道这个存在。这个例子http://www.w3schools.com/svg/tryit.asp?filename=trysvg_polygon4看起来很像画布,它是否有任何性能影响?

覆盖某种webkit css掩码,像这样http://www.webkit.org/blog/181/css-masks/但具有背景颜色或图案。似乎它可能会有问题,如果页面的背景图像不是纯色。

对于冗长的帖子的道歉,我只是不知道最好的方法来解决这个问题后,画布证明是不可能的。我很乐意指出正确的方向。

感谢

+0

http://stackoverflow.com/questions/3889882/svg-support-on-android 快速谷歌似乎表明,SVG不是去在旧的Android设备上的方式。 – Johan

+0

该死的,坏消息,但重要的是知道 – mao

回答

1

退房拉斐尔,它基于SVG和由以下浏览器支持:

  • Firefox 3.0以上版本,Safari 3.0以上,铬5.0+,歌剧9.5+和Internet Explorer 6.0 +。

http://raphaeljs.com/

+0

谢谢,这看起来非常有用。但正如johan指出svg在很多android版本上不被支持,我只是在我的android手机上试过。我只是假定它会被支持。 – mao

1

有了SVG,您可以使用CSS样式填充,这使得它非常容易设置填充到任何一个图案或纯色。

这是svg中的example模式。

+0

svg是理想的,对于android的支持感到遗憾 – mao

+0

我看到有人修改了SVG Web(一种可以渲染svg和flash的shim),只要安装了flash插件,它就可以在旧版Android上运行。请参阅http://groups.google.com/group/svg-web/browse_thread/thread/77fb6970f5f01e97。 –

+0

谢谢你,我会试一试,看看表现如何 – mao