3

我需要从具有图像 url 的字符串创建一个新的 Image 实例。
例如http://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png

这种类型的 url 来自 JSONParser,我想用它们来填充多按钮列表的图标。

我使用此 Model 类的以下getItemAt方法将数据放在多按钮列表中。每个多按钮都有一个图标和一些线条。我将 Line1 命名为name并将 Line2 命名为rating。我想从字符串 url 制作一个图像,这样我就可以在 h.put("icon", defaultIcon) 行中更改多按钮图标代替 defaultIcon。

static class Model implements ListModel {
    public Object getItemAt(int index) {
        Hashtable h      = new Hashtable();
        Hashtable entry  = (Hashtable) results.elementAt(index);
        String    name   = (String) entry.get("name");
        Double    rating = (Double) entry.get("rating");
        String    url    = (String) entry.get("icon");

        h.put("name", name);
        h.put("icon", defaultIcon); // change defaultIcon with an Image from url String

        if (rating == null) {
            h.put("rating", "Not rated");
        } else {
            h.put("rating", "Rating: " + rating.toString());
        }

        return h;
    }
4

2 回答 2

3

使用ImageDownloadService.createImageToStorage它将异步下载图像,将其放在适当位置的列表的哈希表中。刷新列表并将图像缓存在存储中,以防您再次请求它。

作为服务的一部分,它还可以将您的图像缩放到固定尺寸。

于 2012-10-20T08:07:49.580 回答
0

您可以使用它从 url 获取图像

Image image = Toolkit.getDefaultToolkit().getDefaultToolkit().createImage(url);

这也可以

Image image = ImageIO.read(url); 
于 2012-10-19T19:44:15.400 回答