GridView 是 AdapterView 的派生类, AdapterView 是 ViewGroup 的派生类, ViewGroup 是 View 的派生类。
什么是 GridView ?官方的说法是:
A view that shows items in two-dimensional scrolling grid. The items in the grid come from the ListAdapter associated with this view
这句话包含以下几个意思:
+ GridView 是一个二维可滚动的网格视图
+ GridView 中的数据是有与之关联的 ListAdapter 提供的
下面就一个具体的例子来说明 GridView 的用法。
1. 创建一个项目,修改 main.xml 使之如下:
< xml version = "1.0" encoding = "utf-8" >
android:id = "@+id/gridview"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:background = "#333"
android:columnWidth = "90px"
android:numColumns = "auto_fit"
android:horizontalSpacing = "6px"
android:verticalSpacing = "6px"
android:stretchMode = "columnWidth"
android:gravity = "center" >
GridView >
2. 将相关的图片拖入 res/drawable-mdpi 文件夹中:

以上各图对应的文件名分别为:
.aa.png, al.png, ar.png. au.png, cf.png, cn .png, dm .png, eu .png, fa .png, gr .png, hk .png, in .png, ma .png, pk .png, ru .png, sk .png, uk .png, us .png,
3. 自定义 Adapter ,使之如下:
package com.pat.gui;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ImageAdapter extends BaseAdapter
{
private Context ctx;
private int[] images =
{
R.drawable.aa, // Austria
R.drawable.al, // Algeria
R.drawable.ar, // Argentina
R.drawable.au, // Austrilia
R.drawable.cf, // Swizterland
R.drawable.cn, // China
R.drawable.dm, // Denmark
R.drawable.eu, // European Union
R.drawable.fa, // France
R.drawable.gr, // Greece
R.drawable.hk, // Hong Kong
R.drawable.in, // India
R.drawable.ma, // Macau
R.drawable.pk, // Pakistan
R.drawable.ru, // Russia
R.drawable.sk, // South Korea
R.drawable.uk, // United Kingdom
R.drawable.us // United States
};
public ImageAdapter(Context ctx)
{
this.ctx = ctx;
}
//@Override
public int getCount()
{
return images.length;
}
//@Override
public Object getItem(int position)
{
return images[position];
}
//@Override
public long getItemId(int position)
{
return images[po