在 ListView 中显示来自 url 的可绘制图像
Posted
技术标签:
【中文标题】在 ListView 中显示来自 url 的可绘制图像【英文标题】:Display drawable image from url in a ListView 【发布时间】:2011-09-12 12:58:51 【问题描述】:我想在 ListView 中显示新闻(来自 RSS)。我已经成功创建了我的 ListView,正确显示了标题和描述。但我无法显示来自 URL 的图像。
这是我的代码:
maListViewPerso = (ListView) findViewById(R.id.listviewperso);
ArrayList <HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
int i = 0;
while (i < 55)
map = new HashMap<String, String>();
map.put("titre", newsArray[i]);
map.put("description", newsArray[i+1]));
map.put("img", newsArray[i+4]);
listItem.add(map);
i += 5;
SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem,
R.layout.affichageitem, new String[] "img", "titre", "description",
new int[] R.id.img, R.id.titre, R.id.description);
maListViewPerso.setAdapter(mSchedule);
如您所料,newsArray[i+4]
包含我的图片的 URL。
我编写了一个函数drawable_from_url
,它返回一个android.graphics.drawable.Drawable
,并且工作正常。我试着写这个:
map.put("img", String.valueOf(drawable_from_url(newsArray[i+4], "newsPic")));
但它也不起作用(没有显示图像)。值的一个例子
String.valueOf(drawable_from_url(newsArray[i+4], "newsPic"))
可能是android.graphics.drawble.BitmapDrawable@481f16d0
有什么想法吗?
谢谢。
【问题讨论】:
【参考方案1】:试试这个方法从url加载位图
public Bitmap setRemoteImage(URL url)
try
Bitmap bm=null;
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis=new BufferedInputStream(is);
try
bm = BitmapFactory.decodeStream(bis);
catch (Exception e)
// TODO Auto-generated catch block
MainActivity mm= new MainActivity();
Drawable dra=mm.getResources().getDrawable(R.drawable.icon);
Bitmap bb=((BitmapDrawable)dra).getBitmap();
bm=bb;
is.close();
return bm;
catch (IOException e)
return null;
【讨论】:
以上是关于在 ListView 中显示来自 url 的可绘制图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在从 ListView 项获取的两个地理点之间绘制标记和路线?
解析 JSON 并在 Listview 中显示检索/获取 URL 服务器“无数据”
如何从 URL 下载图像并将其动态存储在我的应用程序的可绘制文件夹中?