我想在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]
包含我的图片的网址。
我编写了一个函数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
有什么想法吗?
感谢。
答案 0 :(得分:0)
尝试使用此方法从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;
}
}