【问题标题】:codename one image from url代号来自网址的一张图片
【发布时间】:2016-03-16 06:39:47
【问题描述】:

我正在尝试使用 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 构建器。

【问题讨论】:

    标签: java image url codenameone


    【解决方案1】:

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

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

    方法一:

    //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);
    

    方法二:

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

    方法三:

    //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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 2013-02-01
      • 1970-01-01
      相关资源
      最近更新 更多