从网址代理一个图像

时间:2015-12-10 14:58:12

标签: java image url codenameone

我正在尝试使用Java创建一个移动应用程序并代号为一个插件。我的问题是 - 将图像从URL填充到标签的简单方法是什么?我用谷歌搜索它,我发现的就是这段代码:

Image i = URLImage.createToStorage(placeholder, "fileNameInStorage", "http://xxx/myurl.jpg", URLImage.RESIZE_SCALE); 

但我不知道如何使用它。什么是placeholder?它会询问EncodedImage参数,但如果我这样做:

EncodedImage image = new EncodedImage(10, 10);

我收到EncodedImage受保护的错误。

我只想将图片从URL填充到表单中所需的标签。

我正在使用GUI构建器。

1 个答案:

答案 0 :(得分:4)

占位符图片是在下载URL图像时应显示的图像,它是一个EncodedImage。

如果您的Label已将图标作为占位符,则可以使用其图标,否则您可以创建新的占位符图像。以下是创建EncodedImage和URLImage用法示例的3个选项:

方法1:

//generate a grey placeholder that matches the size of the label's icon
Image placeholder = Image.createImage(label.getIcon().getWidth(), label.getIcon().getWidth(), 0xbfc9d2);
EncodedImage encImage = EncodedImage.createFromImage(placeholder, false);

方法2:

//Convert the label icon to EncodedImage
EncodedImage encImage = (EncodedImage)label.getIcon();

方法3:

//Create a fresh grey EncodedImage when label doesn't have any icon set initially
int deviceWidth = Display.getInstance().getDisplayWidth();
Image placeholder = Image.createImage(deviceWidth / 10, deviceWidth / 10, 0xbfc9d2); //square image set to 10% of screen width
EncodedImage encImage = EncodedImage.createFromImage(placeholder, false);

用法示例:

将URL用作存储中的缓存图像名称是一种很好的做法。如果您有相同图片的多个尺寸,只需在其前面添加一个唯一的字符串,例如"Large" + URL

 label.setIcon(URLImage.createToStorage(encImage, "Medium_" + "http://xxx/myurl.jpg", "http://xxx/myurl.jpg", URLImage.RESIZE_SCALE));