先看效果:
请先准备好一些图片,放在资源文件夹中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中就显示了图片,具体原因不知道,但是这样写确实显示了图片。
相关推荐
android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo 免费下载 给个好评!
Android SimpleAdapter的多种显示GridView/ListView
Android GridView 点击缩放图像
android Gridview分页实现的一个小例子
Android中GridView以表格形式显示多张图片(仿桌面),详细了解请移步http://blog.csdn.net/zxc514257857/article/details/70478537
Android GridView完美横向滑动 ,并且可限制Gridview显示行数!
本示例代码,解决了在Android中使用GridView和ViewPager显示图片时出现的内存溢出(OOM),加载缓慢,异步加载图片错位等问题。
Android GridView分页显示
android GridView 添加图片 。利用GridView 添加图片,删除图片。 图片来自图库,来自拍照,剪切。
android GridView搜索并显示SD卡上的图片,很不错的例子。
通过GridView来读取sdcard某个文件夹下面的图片,显示到GridView上,点击使用ViewFlipper进行图片浏览
一个非常好的 android gridview 异步加载图片的例子,需要17以上的api
文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView控件点击加号图片动态添加本地相册图片,点击图片可以删除已添加图片。同时界面比较美观。 免费资源,希望对大家...
android gridview分页和滑动效
Android完美解决GridView异步加载图片和加载大量图片时出现Out Of Memory问题
解决了在Android显示过图片导致的OOM,并使用Gridview和ViewPager对图片显示进行优化处理。
AndroidGridView点击每一个图片进入个人页面渐变特效.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android GridView 多标题分组显示,上下拉刷新,convertview可重用 效率高,不卡
listview/gridview加载显示大量图片,对内存和性能都是严峻的考验。常引起OOM,滚动卡顿等问题。该示例代码完美解决了上述问题。主要用到的技术有: 1. 用MemoryCache缓存图片信息,采用SoftReference方式避免OOM。 ...
android gridview 加载大量图片。无OOM。 程序运行默认加载SD卡内所有图片文件,这是我写了之后用在一款成熟app里面的。可用