Android ListView显示网络图片 [复制链接]
来源:互联网 发布:tf idf算法实现 编辑:程序博客网 时间:2024/05/03 11:31
第一步:分析api
使用ListView都需要使用Adapter,而api中的adapter都继承自BaseAdapter,所以第一反应就是自己实现一个继承自BaseAdapter的adapter,但是BaseAdapter还是属于高度抽象的基类,所以实现起来还是还是有点难度的。此时作为初学者的你(当然我也是啦)应该最熟悉的是SimpleAdapter了吧,而且SimpleAdapter也可以实现在ListView显示图片,但是就是不能显示网络图片,只能显示在drawalbe中定义过的图片。所以就想,我是否可以改写SimpleAdapter的类,在它实例化drawalbe中图片时。
第二步:源码分析
经过查看源码SimpleAdapter发现,显示每个item视图都是通过调用(int position, View convertView, ViewGroup parent)方法来实现的。
Java代码:
在 getView(int position, View convertView, ViewGroup parent) 中又调用了SimpleAdapter的私有方法createView FromResource来组装View,在 createViewFromResource中对SimpleAdapter的参数String[] from和int[] to进行了组装,代码如下:
Java代码:
在createViewFromResource方法中又有一个bindView(position, v)方法对item中的各个View进行了组装,bindView(position, v)代码如下:
Java代码:
终于找到了对ViewImage进行组装的代码了“else if (v instanceof ImageView)”,我们留成功之差一步之遥了!
看到上面茫茫的代码是不是已经头晕了呢,其实以上的都是源代码,我没有做过任何的修改,也不需要修改,只是需要把它从SimpleAdapter中取出来进行覆盖,以为他们私有方法,不能用super调用!到最后终于到你出手的时候了,你需要重写SimpleAdapter类中的 setViewText方法,SimpleAdapter对setViewText进行了重载,有两个方法,代码如下:
Java代码:
我们用Bitmap 来对ImageView进行设置,WebImageBuilder.returnBitMap是我自己实现的获取网络图片的方法,说到这,我的解释也就说完了,希望可以给大家帮助!
使用ListView都需要使用Adapter,而api中的adapter都继承自BaseAdapter,所以第一反应就是自己实现一个继承自BaseAdapter的adapter,但是BaseAdapter还是属于高度抽象的基类,所以实现起来还是还是有点难度的。此时作为初学者的你(当然我也是啦)应该最熟悉的是SimpleAdapter了吧,而且SimpleAdapter也可以实现在ListView显示图片,但是就是不能显示网络图片,只能显示在drawalbe中定义过的图片。所以就想,我是否可以改写SimpleAdapter的类,在它实例化drawalbe中图片时。
第二步:源码分析
经过查看源码SimpleAdapter发现,显示每个item视图都是通过调用(int position, View convertView, ViewGroup parent)方法来实现的。
Java代码:
在 getView(int position, View convertView, ViewGroup parent) 中又调用了SimpleAdapter的私有方法createView FromResource来组装View,在 createViewFromResource中对SimpleAdapter的参数String[] from和int[] to进行了组装,代码如下:
Java代码:
在createViewFromResource方法中又有一个bindView(position, v)方法对item中的各个View进行了组装,bindView(position, v)代码如下:
Java代码:
终于找到了对ViewImage进行组装的代码了“else if (v instanceof ImageView)”,我们留成功之差一步之遥了!
看到上面茫茫的代码是不是已经头晕了呢,其实以上的都是源代码,我没有做过任何的修改,也不需要修改,只是需要把它从SimpleAdapter中取出来进行覆盖,以为他们私有方法,不能用super调用!到最后终于到你出手的时候了,你需要重写SimpleAdapter类中的 setViewText方法,SimpleAdapter对setViewText进行了重载,有两个方法,代码如下:
Java代码:
我们用Bitmap 来对ImageView进行设置,WebImageBuilder.returnBitMap是我自己实现的获取网络图片的方法,说到这,我的解释也就说完了,希望可以给大家帮助!
- Android ListView显示网络图片 [复制链接]
- android ListView显示网络图片
- android ListView显示网络图片
- Android ListView异步加载网络图片显示
- Android Listview显示网络下载的图片
- listview显示网络图片
- listview显示网络图片
- Android ListView显示图片
- 使用ListView显示网络图片
- ListView中显示网络图片
- Android基础篇之在ListView中显示网络图片
- Android ListView从网络获取图片及文字显示
- Android ListView从网络获取图片及文字显示
- Android ListView从网络获取图片及文字显示
- Android ListView从网络获取图片及文字显示
- Android ListView从网络获取图片及文字显示
- Android ListView从网络获取图片及文字显示
- Android ListView从网络获取图片及文字显示
- AIX中find命令和xargs命令介绍
- Eclipse设置模版代码
- Android中使用SoftReference缓存图片对象
- 黑马程序员_JAVA_面向对象(二)
- php函数
- Android ListView显示网络图片 [复制链接]
- 软件测试基础
- LinPhone开发文档一:SIP和VOIP简单介绍
- 黑马程序员_JAVA_面向对象(三)
- Struts重定向Action方法
- hdu 1235 统计同成绩学生人数
- 统计一个字符串中字母、数字,空格及其他的个数
- android开发(4) 闪屏的实现 [复制链接]
- struts2的ModelDriven