我通常使用GWT ClientBundle来管理我的应用程序中的映像,如下所示
@Source("icons/info.png")
ImageResource info();不,我想切换到.svg图形,但是我没有找到在ClientBundle中使用svg的方法,比如SVGResource之类的。我知道svg在GWT中是受支持的,有可能将这些图形插入到GWT中,但是我想使用ClientBundle + svg的优点。有人已经解决这个问题了吗?
发布于 2015-05-28 13:00:28
ImageResource用于GWT编译器可以以某种方式优化的光栅图像,您可以查询它们的大小。
对于SVG这样的矢量图像,您可以简单地使用带有DataResource注释的@MimeType("image/svg+xml")。
@Source("icons/info.svg")
@MimeType("image/svg+xml")
DataResource info();请注意,您不能在@sprite中使用CssResource,但是您可以在资源的URL中使用,例如,使用@url的background-image。
您也不能将资源传递给Image小部件,但是可以只传递它的getSafeUri()。
如果您想要SVG内容而不是使用它作为图像URL,那么您可以使用TextResource。您必须将它作为setInnerHTML传递给元素,或者将setHTML传递给小部件,以使浏览器解析它。
发布于 2015-05-28 12:58:18
有LIB-GWT-SVG。它支持最新的GWT版本(2.7.0),看起来很成熟。
他们实现了SVG与UIBinder的集成,并添加了SVGResource类,您可以像绑定ImageResource那样捆绑这些类
@Source(...)
SVGResource bundledResource;https://stackoverflow.com/questions/30507086
复制相似问题