`
啸笑天
  • 浏览: 3462706 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

ListView使用SimpleAdapter加载网络图片

阅读更多

ListView是一种常见的布局,通过SimpleAdapter加载数据既省力又美观,常用做法如下:

 

SimpleAdapter mySimpleAdapter = new SimpleAdapter (
                                               Context context,
                                               List<? extends Map<String, ?>> data,
                                               int resource,
                                               String[] from,
                                               int[] to)
myListview.setAdapter(mySimpleAdapter)

 其中Context为ListView的activity

data:          为加载的数据
resource:   为ListView中加载的布局文件
from:         为data中的map的key值,与to中一一对应
to:            表示resource中对应的布局文件中空间的id,通常为R.id.xxxx
这样的做法在实际运行中有一个问题,如果map中包含有图片,而这个图片不是在drawable中存在的,比如网络图片,simpleAdapter本身是不支持的,网上搜索了很多做法,有的是自己做一个Adapter然后继承SimpleAdapter ,自定义,我查阅文档发现了一个ViewBinder,该类可以帮助SimpleAdapter加载图片。

 

SimpleAdapter mySimpleAdapter = new SimpleAdapter (
                                               Context context,
                                                List<? extends Map<String, ?>> data,
                                               int resource,
                                               String[] from,
                                               int[] to);

myListview.setAdapter(mySimpleAdapter)

mySimpleAdapter.setViewBinder(new ViewBinder() {  
                             public boolean setViewValue(
                                                 View view, 
                                                 Object data,  
                                              String textRepresentation) {  
                                 //判断是否为我们要处理的对象  
                                 if(view instanceof ImageView  && data instanceof Bitmap){  
                                     ImageView iv = (ImageView) view;  
                                     iv.setImageBitmap((Bitmap) data);  
                                     return true;  
                                 }else  
                                 return false;  
                             }  
                         });  

 ViewBinder是一个接口,判断传进来的Data,通常是Object类型,然后将其转换成为Bitmap,这样我觉得多此一举,为什么对于String类型的数据可以自动转换,而Bitmap就不能转换呢,而且程序在运行期其实可以判断View是什么类型的View,完全可以在SimpleAdapter中封装好该段代码,也许还有其他用法吧。

分享到:
评论
1 楼 xdxiaotao 2012-05-07  

相关推荐

    ListView和SimpleAdapter的简单应用

    本篇文章将深入探讨ListView和SimpleAdapter的基本使用以及它们在实际应用中的结合。 ### 1. ListView简介 ListView是Android SDK提供的一种可以显示多行、多列数据的视图控件,适用于数据列表的展示。它的主要特点...

    android ListView 加载网络图片

    在listview中显示网络图片,该类重写simpleadapter,让listview绑定该adapter

    ListView使用SimpleAdapter和自定义Adapter填充数据

    在这个场景中,我们探讨了如何使用`SimpleAdapter`和自定义`Adapter`来填充ListView,并且在自定义Adapter中添加了删除功能。下面我们将详细讲解这两个方法。 首先,`SimpleAdapter`是Android SDK提供的一种简单...

    ListView,SimpleAdapter

    如果你需要更精细的控制,例如图片加载、点击事件处理等,你可能需要使用自定义的Adapter(如BaseAdapter或CursorAdapter)。 最后,虽然你提到由于积分限制无法下载资源,但Android的官方文档和许多在线教程提供了...

    listview实现动态加载

    合理设置ImageView的大小,避免加载过大图片,使用内存和磁盘缓存来减少内存占用。 9. **数据分页**: - 为了更高效地加载数据,通常采用分页策略,每次只请求和加载一部分数据。服务器端接口应支持按页查询,...

    ListView【通用】SimpleAdapter适配器

    本篇文章将详细讲解如何在Android应用中使用ListView和SimpleAdapter来构建一个通用的数据展示功能。 首先,理解ListView的核心概念。ListView通过适配器(Adapter)与数据源进行绑定,适配器的作用是将数据转化为...

    安卓listview相关相关-Listview分页加载数据.rar

    本压缩包"安卓listview相关相关-Listview分页加载数据.rar"主要关注的是ListView的分页加载数据这一核心特性。 一、ListView基础 1. ListView的基本结构:ListView由多个View(如TextView、ImageView等)组成的...

    Android ListView异步加载图片方法详解

    在`getView()`方法中,对于每个ListView项,都会启动一个线程来加载图片,并使用弱引用缓存已加载的图片,防止内存泄漏。当图片加载完成后,通过`OnImageLoadListener`回调更新UI。 然而,这种简单的异步加载策略在...

    读取网络图片资源的listview

    本示例的标题“读取网络图片资源的listview”表明我们要探讨的是如何在ListView中加载来自网络的图片。描述提到“自己定义listitem样式”,意味着我们需要自定义ListView的每个条目视图,同时实现一个小型的演示应用...

    SimpleAdapter基础小程序

    通过这个小程序,开发者可以学习到如何使用ListView和SimpleAdapter实现基本的列表展示,同时也能掌握图片加载和事件监听等关键技能。在实际开发中,根据需求可能会对SimpleAdapter进行扩展,比如自定义Adapter以...

    利用JDBC读取mysql数据展示在listview

    在本教程中,我们将深入探讨如何使用Java的JDBC(Java Database Connectivity)接口来从MySQL数据库中读取数据,并将这些数据动态地显示在Android应用的ListView组件上,同时利用SimpleAdapter进行数据绑定。...

    ListVIew用法Intent传递据图片以及Android适配器

    在这个Demo中,我们将会探讨ListView的基本用法,如何使用SimpleAdapter,以及如何通过Intent传递数据和图片。 首先,让我们来看看ListView的基本使用。ListView需要一个Adapter来填充数据,Adapter可以根据不同的...

    ListView 与ArrayAdapter,BaseAdapter,SimpleAdapter,SimpleCursorAdapter配合使用实例。

    本篇将详细讲解ListView与ArrayAdapter、BaseAdapter、SimpleAdapter以及SimpleCursorAdapter的配合使用。 1. **ArrayAdapter** ArrayAdapter是最基础的适配器,它将Java对象数组或ArrayList与ListView进行关联。...

    Android ListView使用技巧

    本篇文章将深入探讨几个关键的Android ListView使用技巧,帮助你提升应用的用户体验和性能。 1. **适配器Adapter的使用** ListView的核心在于适配器,它负责将数据集转化为ListView可显示的视图。常见的适配器有...

    SimpleAdapterdemo

    总结起来,`SimpleAdapterDemo`展示了如何使用`SimpleAdapter`和ListView创建一个基本的列表展示应用。通过理解`SimpleAdapter`的工作原理,开发者可以快速实现数据列表的展示,但也要注意其在复杂场景下的局限性。

    android加载网络数据网络图片baseadpater应用

    3. 图片加载库:使用Picasso、Glide或Fresco异步加载和显示网络图片。 4. BaseAdapter:自定义适配器,将解析后的数据绑定到ListView或RecyclerView等视图组件上。 通过实践这个例子,开发者不仅可以学习到Android...

    ListView加载页面

    本篇文章将深入探讨如何利用ArrayAdapter和SimpleAdapter来加载ListView的内容。 首先,我们来理解ArrayAdapter。ArrayAdapter是Android SDK提供的一种基础适配器,它主要用于将数组中的数据绑定到ListView上。...

    ListView学习(一)-ListView使用例子

    - 数据加载策略:根据需要加载数据,如使用下拉刷新和上拉加载更多功能,减少一次性加载的数据量。 5. **ListView的交互**: - 点击事件:通过设置`OnClickListener`或`OnItemClickListener`监听单个列表项的点击...

    simpleAdapter的简单应用

    在这个主题中,我们将深入探讨`SimpleAdapter`的使用方法,以及如何将图片和列表相结合,以实现一个基本的列表展示功能。 `SimpleAdapter`是Android提供的一个基础适配器,它的主要优点在于使用方便,可以快速地将...

Global site tag (gtag.js) - Google Analytics