`

安卓GridView和SimpleAdapter搭配显示图片和文字说明

阅读更多

先看效果:

 

请先准备好一些图片,放在资源文件夹中res/drawable-hdpi

第一步:

在您的布局文件中添加一个组件GridView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="3" 
        >
    </GridView>

</LinearLayout>

 numColumns="3" 设置每一行显示的个数

第二步:再次创建一个布局文件,布局格式为线性布局,方向为垂直方向,因为等一下我们上面显示图片下面显示文字说明,说以利用线下布局

然后在该布局文件中,添加两个组件,一个是ImageView 一个是TextView,分别添加id名为iamge 和text,这就是等一下用来显示图片和文字的。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="70dp"
        android:layout_gravity="center_horizontal"
         />

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:gravity="center_horizontal"/>

</LinearLayout>

 当然,这里的宽高和对齐方式自己调整。

第三步:在activity中,得到GridView,然后绑定适配器,这里的SimpleAdapter比较难理解,下面的代码有详细说明

protected void onCreate(Bundle savedInstanceState) {
	
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.second_activity);
		// 得到网格视图
		GridView gridView =(GridView) this.findViewById(R.id.gridView);
		//定义适配器
		//参数1:上下文
		//参数2:数据,数据必须是list(及其子类),而且list中必须放的hashmap对象
		//如果图片下面需要显示文字,那么一个hashmap对象就需要存入两个值,一个是图片,一个是文字说明
		//这样一个hashmap就描述显示了一个图片,图片可以直接传入图片的id
		//参数3:这每个图片和图片的文字为一个单元,这每个单元放在哪个布局文件中,因为可能有多张
		//图片,所以会使用多次
		//参数4:图片和显示文字的key是什么,
		//参数5:to表示显示的视图组件的ID
		ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
		int[] imageint =new int[6];
		imageint[0]=R.drawable.image1;
		imageint[1]=R.drawable.image2;
		imageint[2]=R.drawable.image3;
		imageint[3]=R.drawable.image4;
		imageint[4]=R.drawable.image5;
		imageint[5]=R.drawable.image6;
		
		for(int i=0;i<=5;i++){
			HashMap<String, Object> hash = new HashMap<String, Object>();
			hash.put("image",imageint[i]);
			hash.put("text", "image"+i);
			data.add(hash);
		}
		String[] form = {"image","text"};
		int[] to =new int [2];
		to[0]=R.id.image;
		to[1]=R.id.text;
		SimpleAdapter simpleadapter = new SimpleAdapter(this, data, R.layout.griditemlayout, form, to);
		gridView.setAdapter(simpleadapter);
		
		
		
	}

 说明,这里的SimpleAdapter参数可能看不懂,但是根据代码可以看出他们的具体含义。

需要注意的是:

所有数据放在list中,而list中的数据又是hashmap对象,每个hashmap对象描述一个图片,这里直接传入了R文件图片的id,然后在ImageView中就显示了图片,具体原因不知道,但是这样写确实显示了图片。

  • 大小: 81.1 KB
1
0
分享到:
评论

相关推荐

    android 自定义gridView 按日期显示图片和视频 galleryDemo

    android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo 免费下载 给个好评!

    Android中GridView以表格形式显示多张图片(仿桌面)

    在Android开发中,GridView是一种非常常用的控件,它允许我们以网格的形式展示数据,通常用于显示多张图片、图标或者列表项。这个话题是关于如何在Android应用中使用GridView来实现一个类似桌面的布局,展示多张图片...

    Android GridView 图片缩放

    在"Android GridView 图片缩放"这个主题中,我们将深入探讨如何在GridView中实现图片点击后放大显示的功能,这在创建类似相册的应用或者需要用户查看详细图像的场景下非常实用。 首先,我们需要理解GridView的基本...

    Android SimpleAdapter的多种显示GridView/ListView

    - GridView:呈现网格布局,每行可以有多个列,适合展示图片或者图标加文字的组合。 - ListView:单列垂直布局,适合展示大量文本或者简单的图文信息。 3. **SimpleAdapter在GridView中的应用** 在GridView中,...

    android 通过GridView控件获取本地图片并动态显示 程序源码

    文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView控件点击加号图片动态添加本地相册图片,点击图片可以删除已添加图片。同时界面比较美观。 免费资源,希望对大家...

    android Gridview分页实现

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...

    Android中使用Gridview和ViewPager显示图片的优化处理(第二版)

    本教程将深入探讨如何在Android应用中使用GridView和ViewPager来高效地显示图片,同时解决第一版遗留的第一张图片无法显示和部分机型图片旋转的问题。 1. **GridView与ViewPager介绍** - GridView是Android提供的...

    用GridView加动画写了一个滑动放大显示选中图片

    用GridView加动画写了一个滑动放大显示选中图片 项目需求在制定大小区域写一个横向菜单栏,菜单栏整体不能移动,GalleryFlow画廊不能满足需求,就自己重写写了一个)划到当图片时换个图片且动画效果渐渐放大,划到下...

    android GridView+ViewFlipper实现图片浏览

    在Android开发中,GridView是一种常用的布局管理器,它允许我们以网格的形式展示多个视图,常用于创建诸如图片库、应用列表等界面。本教程将详细介绍如何利用GridView和ViewFlipper来实现图片浏览功能。 首先,`...

    Android中GridView和ViewPager显示图片的优化处理(第三版

    在Android开发中,GridView和ViewPager是两种常用的布局控件,它们在展示大量数据,特别是图片时,经常会遇到性能挑战。本示例代码针对这些问题进行了优化处理,主要关注内存管理、用户体验和性能提升。 首先,我们...

    关于GridView中显示Image图片列的方法及示例

    在提供的文档《关于GridView中显示Image图片列的方法.doc》中,应包含了更详细的步骤和代码示例。另外,`WebSite1.rar`可能是一个完整的示例项目,解压后你可以参考里面的代码和布局。 总结,将图片显示在GridView...

    Android GridView完美横向滑动 ,并且可限制Gridview显示行数!

    本篇文章将深入探讨如何在Android中实现一个完美的横向GridView,并且限制其显示的行数。 首先,我们要明白,原生的GridView并不支持横向滑动,因此我们需要自定义一个HorizontalGridView。这个自定义的控件通常...

    android GridView 添加图片

    在这个场景下,"android GridView 添加图片"的主题涉及了如何在GridView中加载和操作图片,包括从图库选择图片、通过相机拍摄图片以及对图片进行剪切等操作。下面将详细介绍这些知识点。 1. **GridView的基本使用**...

    android GridView搜索并显示SD卡上的图片

    总的来说,通过使用GridView和自定义适配器,我们可以有效地在Android应用中搜索并显示SD卡上的图片,为用户提供直观且互动的图片浏览体验。同时,合理利用图片加载库能优化性能,确保应用运行流畅。

    android gridview 加载大量图片。无OOM

    6. **注意Activity的生命周期**:在Activity销毁时,确保释放GridView和图片相关的资源,避免内存泄漏。 7. **避免内存泄漏**:检查并修复可能的内存泄漏,如静态变量引用了Context,或者非静态内部类持有对外部...

    AndroidGridView点击每一个图片进入个人页面渐变特效.zip

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个"AndroidGridView点击每一个图片进入个人页面渐变特效.zip"压缩包包含的资源可能是一个示例项目,展示了如何在GridView中实现...

    android Gridview 异步加载网络图片

    综上所述,"android Gridview 异步加载网络图片"是一个涉及Android UI设计、多线程编程、图片处理、缓存策略以及第三方库使用的综合主题。通过学习这个示例,开发者可以提升应用性能,提供更优质的用户体验。

    Android GridView实现一行显示并左右滚动

    总的来说,通过组合使用HorizontalScrollView和GridView,我们可以实现Android单行水平滑动的效果。同时,通过保存和恢复选中状态,可以提供良好的用户体验。在实际项目中,还可以根据需求进一步优化,如添加动画...

    GridView加载大量图片卡的问题

    1. **AsyncTask**:Android自带的异步任务类,可以用来处理耗时操作,例如网络请求和图片解码。通过在后台线程执行任务,然后在UI线程更新结果,可以避免阻塞用户界面。 2. **Universal Image Loader (UIL)**:这是...

    GridView显示大量图片

    以下将详细讨论如何在Android中完美解决GridView异步加载图片和处理大量图片时的内存优化策略。 1. **使用BitmapOptions预估大小** 在加载图片之前,通过`BitmapFactory.Options`的`inJustDecodeBounds`属性可以...

Global site tag (gtag.js) - Google Analytics