我一直在尝试将我的图片网址加载到第一个必须下载的列表视图中,有人可以帮助我。
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", String.valueOf(i));
map.put("name", "House name:" + json_data.getString("name"));
map.put("address", "Adress: " + json_data.getString("address"));
URL newurl = new URL(json_data.getString("imageUrl"));
itmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent());
ImageView imagy = (ImageView)findViewById(R.id.image);
imagy.setImageBitmap(bitmap);
map.put("img",bitmap);//error is here says convert bitmap to type string
mylist.add(map);
答案 0 :(得分:1)
您正在使用此代码做什么?
URL newurl = new URL(json_data.getString("imageUrl"));
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent());
ImageView imagy = (ImageView)findViewById(R.id.image);
imagy.setImageBitmap(bitmap);
map.put("img",bitmap);//error is here says convert bitmap to type string
mylist.add(map);
因为您每次都在执行findViewById()并设置图像位图。然后你加入了mylist。
<强>建议:强> 相反,我建议你只在HashMap中添加URL字符串:
String strImageURL = json_data.getString("imageUrl");
map.put("img",strImageURL );/
在为ListView定义自定义适配器时,只需在自定义适配器的 getView()方法中执行此操作(可以通过扩展 BaseAdapter )。
建议2: 如果你想在ListView中实现延迟加载图像,那么请查看Fedor在这里给出的答案:Android - How do I do a lazy load of images in ListView
答案 1 :(得分:1)
我希望,你的实际HashMap HashMap map = new HashMap();
如果是这样,你只能添加String值。 尝试以下,
class House {
int id;
String houseName;
String houseAddress;
Bitmap image;
}
List<House> houseList = new ArrayList<House> ();
House houseObj = new House();
houseObj.id = i;
houseObj.houseName = "House name:" + json_data.getString("name");
houseObj.address = "Adress: " + json_data.getString("address");
URL newurl = new URL(json_data.getString("imageUrl"));
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent());
ImageView imagy = (ImageView)findViewById(R.id.image);
imagy.setImageBitmap(bitmap);
houseObj.image = bitmap;
houseList.add(houseObj);
在listview适配器中使用此列表。