android中的数据能够通过gridview类实现表格化展现,它也属于列表类型的控件,其继承关系如下:
java.lang.object
↳ android.view.view
↳ android.view.viewgroup
↳ android.widget.adapterview<t extends android.widget.adapter>
↳ android.widget.abslistview
↳ android.widget.gridview
gridview控件应用案例效果如图6-10所示。

图6-10 gridview控件使用效果图
程序代码请参考代码清单6-8:
【代码清单6-8】 chapter6_4/src/com/work/gridview_1.java
public class gridview_1 extends activity {
@override
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.grid);
gridview g = (gridview) findviewbyid(r.id.mygrid);
g.setadapter(new imageadapter(this));
g.setonitemselectedlistener(new onitemselectedlistener() {
public void onitemselected(adapterview<?> parent, view view,
int position, long id) {
toast.maketext(gridview_1.this, "图片id:" + mthumbids[position],
toast.length_short).show();
}
public void onnothingselected(adapterview<?> parent) {
});
private integer[] mthumbids = { r.drawable.yellowimage,
r.drawable.redimage, r.drawable.icon, r.drawable.blueimage,
r.drawable.photo1962, r.drawable.photo189, r.drawable.photo1803,
r.drawable.photo1796, r.drawable.photo1732, r.drawable.photo1553,
r.drawable.photo1537, r.drawable.photo1503, r.drawable.photo1453,
r.drawable.photo1450, r.drawable.photo1447, r.drawable.photo1441,
r.drawable.photo1433, r.drawable.photo1432, r.drawable.photo1431,
r.drawable.photo1426, r.drawable.photo1425, r.drawable.photo1424,
r.drawable.photo1423, r.drawable.photo1422, r.drawable.photo142,
r.drawable.photo140, r.drawable.photo1220, r.drawable.photo1208,
r.drawable.photo1207, r.drawable.photo101209, };
public class imageadapter extends baseadapter {
private context mcontext;
public imageadapter(context c) {
mcontext = c;
public int getcount() {
return mthumbids.length;
public object getitem(int position) {
return position;
public long getitemid(int position) {
public view getview(int position, view convertview, viewgroup parent) {
imageview imageview;
if (convertview == null) {
imageview = new imageview(mcontext);
imageview.setlayoutparams(new gridview.layoutparams(60, 60));
imageview.setpadding(8, 8, 8,
;
} else {
imageview = (imageview) convertview;
imageview.setimageresource(mthumbids[position]);
return imageview;
代码的关键是实现baseadapter适配器类——imageadapter,代码如下:
在convertview为null的时候实例化控件,imageview.setlayoutparams(new gridview.layoutparams(60, 60)是设置一个单元格中图片大小是60×60像素。imageview.setpadding(8, 8, 8,
设定gridview的单元格与其中的图片之间上、下、左、右空白。
布局文件chapter6_4/res/layout/grid.xml:
<?xml version="1.0" encoding="utf-8"?>
<gridview xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mygrid2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:verticalspacing="10dp"
android:horizontalspacing="10dp"
android:numcolumns="auto_fit"
android:columnwidth="60dp"
android:gravity="center"
/>
android:verticalspacing="10dp"是两行之间的边距,android:horizontalspacing="10dp"是两列之间的边距。android:numcolumns="auto_fit"gridview列数设置为自动,android:columnwidth="60dp"是每列的宽度,也就是项目的宽度。android:gravity="center"是居中。
出自《android开发案例驱动教程》第六章