ZK替换图像内容

时间:2018-03-29 07:15:59

标签: java image zk

我在zul页面上有一个图像,我需要使用控制器进行替换。

我尝试过使用Image.setContent(bufferedImage)以及Image.setSrc(base64EncodedString),这些都不会更新显示的图像。

我还尝试在设置源和内容后调用Image.invalidate(),这也不会更新图像。

.zul上的我的图片标记看起来像这样

<image id="imgStreaming" width="200" height="200" style="display:inline-block; border:1px solid #b9b9b9; border-radius:0px; color:#ccc; min-width:200px; min-height:200px;" />

控制器中的代码如下所示

JsonArray ja = json.getAsJsonObject().get("A").getAsJsonArray();                    
BufferedImage bufferImg = decodeToImage(ja.get(0).toString());                    
imgStreaming.setContent(bufferImg);
imgStreamingFingerprint.invalidate();

decodeToImage方法只接受base64字符串并将其转换回BufferedImage

1 个答案:

答案 0 :(得分:0)

ZK图像内容包含AImage对象。因此,您需要先创建此对象,然后才能更改图像元素的内容。 见下面的例子

<image content="@bind(vm.currentImage)"/>

URL url = new URL(IMAGE_URL);
currentImage = new AImage(url);