通过ListView可以填充一个列表,在列表里可以加上图片,文字等等,但常规的方法只能加载到本地R.id.xxx的图片,无法做到动态获龋其实要 动态获取也不难,关键是靠人品,一种就是去抠源码,但估计大多数的人都是业余学android,估计被上司黑了一天脸之后回到家还能去抠源码?有那时间都 被老婆老妈拉去唠叨了。一种是去搜索,但搜索也得靠人品哦,在这不讨论搜索引擎的问题。
代码段A:
1
SimpleAdapert notes = new SimpleAdapert(
2
this,
3
list,
4
R.layout.index_listview_row,
5
new String[] {"docTitle" ,"docSum" ,"docImg"},
6
new int[] {R.id.index_row_title ,R.id.index_row_sum ,R.id.index_row_img} );
7
setListAdapter(notes);
如果这样写的话是无法动态显示图片的,如果靠 list里面的map.get("docImg")来获取"http://。。。"去填充R.id.index_row_img,结果当然就是没有图片 啦,其实可以新加一个类,继承SimpleAdapert,重载 public void setViewImage(ImageView v, String value)方法。
代码段B:
1
public void setViewImage(ImageView v, String value) {
2
Bitmap bitmap = WebBitMap.getHttpBitmap(value);
3
((ImageView) v).setImageBitmap(bitmap);
4
}
WebBitMap类,自定义,获取到BitMap
01
public class WebBitMap {
02
public static Bitmap getHttpBitmap(String url) {
03
URL myFileUrl = null;
04
Bitmap bitmap = null;
05
try {
06
//Log.d(TAG, url);
07
myFileUrl = new URL(url);
08
} catch (MalformedURLException e) {
09
e.printStackTrace();
10
}
11
try {
12
HttpURLConnection conn = (HttpURLConnection) myFileUrl
13
.openConnection();
14
conn.setConnectTimeout(0);
15
conn.setDoInput(true);
16
conn.connect();
17
InputStream is = conn.getInputStream();
18
bitmap = BitmapFactory.decodeStream(is);
19
is.close();
20
} catch (IOException e) {
21
e.printStackTrace();
22
}
23
return bitmap;
24
}
25
}
代码段A可改写为:
1
SimpleAdapertSub notes = new SimpleAdapertSub(
2
this,
3
list,
4
R.layout.index_listview_row,
5
new String[] {"docTitle" ,"docSum" ,"docImg"},
6
new int[] {R.id.index_row_title ,R.id.index_row_sum ,R.id.index_row_img} );
7
setListAdapter(notes);
原理很简单,就是执行了之类的方法。