我有一个包含从不同网址检索到的位图的Bitmap列表。
@Override
protected List<Bitmap> doInBackground(Void... params) {
for (int i=0;i<payss.size();i++){
try {
list_drapeaux.add(BitmapFactory.decodeStream((InputStream)new URL(payss.get(i).getLogo()).getContent()));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return list_drapeaux;
}
payss.get(i).getLogo())
包含不同的图片网址。
我正在使用SimpleAdapter在ListView中设置图像:
final List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i=0;i<payss.size();i++){
Map<String,Object> map = new HashMap<String,Object>();
Bitmap contact_pic = pays_drapeaux.get(i);
drawable = new BitmapDrawable(contact_pic);
map.put("pays", payss.get(i).getNom());
map.put("drapeau",contact_pic);
Log.i("PAYS",payss.get(i).getNom());
list.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(fa, (List<? extends Map<String, ?>>) list,
R.layout.pays_item, new String[] {"drapeau","pays"},
new int[] { R.id.image,R.id.text_pays});
setListAdapter(adapter);
我正在将Bitmap转换为Drawable并将其添加到map然后列表。
答案 0 :(得分:1)
我建议使用BaseAdapter而不是SimpleAdater,因为它可以让您更灵活地显示数据以及如何显示数据,并通过getView方法设置图像(观看this video以获取更多信息)。
另外,我建议永远不要以这种方式存储位图,因为你不知道他们使用多少内存与可用内存相比。使用缓存机制(阅读here以获取更多信息)。