`
喧嚣求静
  • 浏览: 573432 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android用simpleAdapter来直接显示BMP图片 涉及的系列问题

阅读更多
开题前先来张效果图(也让我学会了在ITEYE使用图片嵌入文章中,有点麻烦,要先当附件上传,再引用)

一般来说,在用simpleAdapter适配器时,我们所要显示的图片资源都是程序内的本地资源,而且是以资源的ID(Resources ID)形式来表现的。
map.put("img", R.drawable.i3);
但是有时候我们需要用这个适配器来显示网上的远程图片时,该如何直接显示呢?方法是实现ViewBinder()这个接口,在里面定义数据和视图的匹配关系
 adapt.setViewBinder(new ViewBinder(){

			@Override
			public boolean setViewValue(View view, Object data,
					String textRepresentation) {
				if( (view instanceof ImageView) & (data instanceof Bitmap) ) {
					ImageView iv = (ImageView) view;
					Bitmap bm = (Bitmap) data;
					iv.setImageBitmap(bm);
					return true;
					}
					return false;

			}
    		   
    	   });

使用simpleAdapter适配器
 SimpleAdapter adapt=new SimpleAdapter(ContactInfoActivity.this,getListDate(list),R.layout.listrow,new String[]{"show_pic","nameAndSex","show_company","show_single"},
    			   new int[]{R.id.show_pic,R.id.nameAndSex,R.id.show_company,R.id.show_single});
    	   adapt.setViewBinder(new ViewBinder(){

			@Override
			public boolean setViewValue(View view, Object data,
					String textRepresentation) {
				if( (view instanceof ImageView) & (data instanceof Bitmap) ) {
					ImageView iv = (ImageView) view;
					Bitmap bm = (Bitmap) data;
					iv.setImageBitmap(bm);
					return true;
					}
					return false;

			}
    		   
    	   });
    	   this.setListAdapter(adapt);

 private List<Map<String,Object>> getListDate(List<People> list){
	   List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
	   for(People p:list){
		   Map<String, Object> map = new HashMap<String, Object>();
		   byte[] data=p.getIcon();
		   Bitmap bmp=null;
		   if (data != null && data.length > 0) {
				bmp = BitmapFactory.decodeByteArray(data, 0,
						data.length);
		   }
		   map.put("show_pic", bmp);
		   String sex=p.getGender()==1?"男":"女";
		   map.put("nameAndSex", p.getName()+"\t"+sex);
		   map.put("show_company", p.getCompany());
		   map.put("show_single", p.getSignature());
		   
		   result.add(map);
		   
	   }
	   return result;
   }

列表布局文件listrow.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    >
    <RelativeLayout android:id="@+id/relativeLayout1" android:layout_height="70dp" android:layout_width="70dp">
        <ImageView android:background="@drawable/card_default_pic"  android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:id="@+id/show_pic"/>
        <ImageView android:layout_width="20dp" android:src="@drawable/ico_call" android:layout_height="20dp" android:id="@+id/imageViewCall" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginLeft="50dp" android:layout_marginBottom="5dp"></ImageView>
    </RelativeLayout>
  
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" android:layout_marginLeft="7dp" >
    <TextView android:id="@+id/nameAndSex"
		android:layout_width="wrap_content" android:layout_height="wrap_content" 
	android:textSize="18sp" android:text="风一样的女人, 女" android:textColor="@color/black"/>
    <TextView android:id="@+id/show_company"
		android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3dp"
	android:textSize="14sp" android:text="销售员" android:textColor="@color/black"/>
    <TextView android:id="@+id/show_single"
		android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3dp"
	android:textSize="12sp" android:text="风一样的女人, 月饼热销中……" android:textColor="@color/black"/>
    </LinearLayout>

</LinearLayout>

Android xxxAadapter扩展阅读
  • 大小: 62.4 KB
分享到:
评论
1 楼 ddnzero 2013-12-25  
哎呀 感谢楼主的方法 ,显示一个图片真费劲哈哈

相关推荐

    android SimpleAdapter 中添加按钮响应事件

    在标题提及的问题中,我们将探讨如何在使用`SimpleAdapter` 的同时添加按钮,并实现按钮的响应事件。 首先,`SimpleAdapter` 是基于`BaseAdapter` 的一个简化版,它通过`Map` 对象和布局资源文件来填充列表项。通常...

    Android之simpleAdapter的ListView

    在Android开发中,ListView是一种非常常见且重要的组件,它用于展示大量的数据列表,通常与适配器(Adapter)配合使用,以实现数据和视图之间的解耦。本教程将聚焦于`SimpleAdapter`,它是Android提供的一种简单易用...

    Android Studio开发显示网络图片

    在网络图片显示中,我们通常通过HTTP GET请求获取远程图片资源的二进制数据。 接下来,涉及数据流的概念。在Android中,数据流用于处理输入和输出数据,包括读取和写入文件、网络通信等。在网络图片加载过程中,...

    Android SimpleAdapter

    在Android开发中,`SimpleAdapter`是一个非常实用的适配器类,主要用于将数据绑定到ListView或GridView等列表视图中。它简化了数据展示的过程,使得开发者无需编写过多的自定义代码就能实现数据和视图的绑定。下面...

    Android SimpleAdapter的多种显示GridView/ListView

    在Android开发中,SimpleAdapter是一种常用的适配器,它用于将数据绑定到视图上,如GridView或ListView。这些组件是Android中展示列表数据的主要方式,适用于创建各种类型的列表应用。下面将详细介绍如何使用...

    Android Studio —— SimpleAdapter (模仿魅蓝设置界面)

    Android Studio —— SimpleAdapter (模仿魅蓝设置界面)。详情查看:https://blog.csdn.net/automoblie0/article/details/122631004

    SimpleAdapter基础小程序

    本教程将深入讲解如何使用SimpleAdapter创建一个基础的小程序,来展示一个包含图片和文字的ListView。 首先,我们需要理解ListView的工作原理。ListView通过Adapter获取数据源,Adapter负责将数据转化为可以显示在...

    Android ListView使用SimpleAdapter示例

    ListView使用simpleAdapter填充实现,数据结构是HashMap,对应的我的博客地址是: http://blog.csdn.net/u012320459/article/details/47667869

    Android之simpleAdapter

    在Android开发中,`SimpleAdapter` 是一个非常实用的适配器类,它主要用于将数据绑定到像 `ListView` 这样的视图组件上。`ListView` 是Android中常用的一个控件,它允许用户显示一组长按需滚动的项目列表。`...

    安卓Android源码——(列表之SimpleAdapter适配).zip

    这个压缩包文件“安卓Android源码——(列表之SimpleAdapter适配).zip”显然是提供了一个关于如何使用`SimpleAdapter`进行数据展示的实例代码。下面我们将深入探讨`SimpleAdapter`的工作原理和使用方法。 1. **...

    Android ListView控件显示数据库中图片

    Android ListView 控件显示数据库中...本文总结了 Android ListView 控件显示数据库中图片的过程,涉及到 SimpleAdapter、ViewBinder、数据库操作、ListView 控件的点击事件、图片的显示等知识点,希望对读者有所帮助。

    那些复杂的列表总要弄个清楚——(二)用SimpleAdapter做适配器

    在本文中,我们将深入探讨如何使用SimpleAdapter来为ListView提供数据适配。SimpleAdapter是Android SDK中预定义的一个适配器,主要用于将数据绑定到ListView中的列表项视图,使得数据与界面元素之间能进行有效地...

    SimpleAdapterImg:使用SimpleAdapter显示图片

    本篇文章将详细讲解如何使用`SimpleAdapter`来显示图片,以及相关的知识点。 首先,`SimpleAdapter`是Android提供的一个基础适配器,它允许我们将一个列表项的数据模型(通常是`Map`对象)绑定到一个布局文件。使用...

    SimpleAdapter的简单列子

    在Android开发中,`SimpleAdapter` 是一个非常实用的适配器类,它主要用于将数据集(通常是列表)与ListView控件进行绑定。这个适配器简化了将数据转化为ListView条目的过程,使得开发者可以快速地展示数据。下面将...

    安卓Android源码——(列表SimpleAdapter适配).rar

    本资源"安卓Android源码——(列表SimpleAdapter适配).rar"应该包含了一个示例项目,展示了如何使用 `SimpleAdapter` 实现数据的动态加载和显示。 首先,我们来看一下 `SimpleAdapter` 的基本用法。`SimpleAdapter` ...

    android ListViewSimpleAdapter

    本教程将深入探讨如何使用ListView结合SimpleAdapter来构建一个简单的列表布局。 首先,`SimpleAdapter`是Android SDK提供的一种便捷的适配器,它将数据与视图绑定,方便地将数据集(通常是数组或列表)转换为...

    listview实例 simpleAdapter自定义列

    通过这个实例,开发者可以学习到如何在Android中使用SimpleAdapter来高效地绑定数据到ListView,并自定义列的显示。这在处理动态生成的列表或者需要展示多列数据的场景中非常有用。同时,理解并掌握ListView和...

    SimpleAdapter实现的GalleryDemo

    在Android开发中,`Gallery`组件是一个非常有趣的控件,它允许用户通过水平滚动来展示一系列的项目,常用于图片浏览或选项选择等场景。在这个名为"SimpleAdapter实现的GalleryDemo"的示例中,我们将深入探讨如何使用...

    simpleAdapter的简单应用

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

    SimpleAdapter,带数据绑定的SimpleAdapter.zip

    总的来说,"SimpleAdapter,带数据绑定的SimpleAdapter.zip"是一个针对Android开发的优秀开源项目,它简化了传统SimpleAdapter的使用,使数据绑定更加高效和直观。对于初学者或希望提高开发效率的开发者来说,这是一...

Global site tag (gtag.js) - Google Analytics