我想使用GWT的clientBundle功能通过GWTCanvas仅加载1个图像,该图像由许多精灵组成。我最初的想法是将ImageResource转换为ImageElement,但是显然这似乎不起作用:

public interface Bundle implements ClientBundle{
   public static Bundle INSTANCE = GWT.create(Bundle .class);
   @Source("/img/tile1.png")
   public ImageResource tile1()
}

final GWTCanvas canvas = new GWTCanvas(400,400);
canvas.drawImage(ImageElement.as(new Image(Bundle.INSTANCE.tile1()).getElement()), 0, 0);


我尝试先将Image添加到RootPanel(强制加载),但这似乎也不起作用。时间可能不正确。有没有人知道如何使用GWTCanvas绘制imageResource?

最佳答案

无法以您想要的方式使用ClientBundled图像。合并为一个大图像的图像将显示为背景图像,该背景图像基于浏览器的功能而仅显示图像的一部分。 GWT将此模式称为“裁剪”模式。因此,当您尝试获取该图像的元素时,实际的src标记为空,因为该图像是背景图像。如果要在画布上显示图像,则它必须是图像的实际链接。

09-08 02:16