如何使用哈希映射设置图像

时间:2015-03-17 21:21:39

标签: java android listview

我想使用哈希映射将图像设置为列表视图,目前正在设置除图像之外的所有数据。如何使用哈希映射设置图像?图像存储在drawable文件夹中。以下是我的代码。

    // create a List of Map<String, ?> objects
    ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();

    for (Attraction attraction : attractions) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put(attraction_name, attraction.getName());
        map.put("img", String.valueOf(R.drawable.king));
        data.add(map);
    }

    // create the resource, from, and to variables
    int resource = R.layout.layout_att;

    String[] from = {attraction_name, "img"};
    int[] to = {R.id.name, R.id.img};

    // create and set the adapter
    SimpleAdapter adapter =
            new SimpleAdapter(this, data, resource, from, to);

    attractionListListView.setAdapter(adapter);

    attractionListListView.setOnItemClickListener(this);

}

2 个答案:

答案 0 :(得分:0)

您可以使用:http://developer.android.com/reference/android/widget/ImageView.html#setImageResource(int)

在适配器中

,执行以下操作:

imageView.setImageResource((int) hashMap.get("img"));

虽然,我真的建议你有一个类而不是哈希映射来做这样的事情。通过这种方式,您可以获得类的List(它甚至可以是帮助您组织的内部类),而不是哈希映射。有了这个,你可以避免将hashmap内容转换为int。

但除此之外,如果你真的想使用hashmap,你可以使用我上面写的代码。

此致

答案 1 :(得分:0)

我不认为您需要在Map中保留二进制数据(流),如果您在需要时阅读它可能会很好。您无法将二进制图像处理为String ..

请参阅此主题以获取解决方案:How to display a list of images in a ListView in Android?