通过ListView可以填充一个列表,在列表里可以加上图片,文字等等,但常规的方法只能加载到本地R.id.xxx的图片,无法做到动态获取。其实要 动态获取也不难,关键是靠人品,一种就是去抠源码,但估计大多数的人都是业余学android,估计被上司黑了一天脸之后回到家还能去抠源码?有那时间都 被老婆老妈拉去唠叨了。一种是去搜索,但搜索也得靠人品哦,在这不讨论搜索引擎的问题。
代码段A:
1
|
SimpleAdapert notes = new SimpleAdapert(
|
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} );
|
如果这样写的话是无法动态显示图片的,如果靠 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);
|
WebBitMap类,自定义,获取到BitMap
01
|
public class WebBitMap {
|
02
|
public static Bitmap getHttpBitmap(String url) {
|
07
|
myFileUrl = new URL(url);
|
08
|
} catch (MalformedURLException e) {
|
12
|
HttpURLConnection conn = (HttpURLConnection) myFileUrl
|
14
|
conn.setConnectTimeout(0);
|
15
|
conn.setDoInput(true);
|
17
|
InputStream is = conn.getInputStream();
|
18
|
bitmap = BitmapFactory.decodeStream(is);
|
20
|
} catch (IOException e) {
|
代码段A可改写为:
1
|
SimpleAdapertSub notes = new SimpleAdapertSub(
|
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} );
|
原理很简单,就是执行了之类的方法。