GridView 网格布局 使用

鉴客 发布于 2011/12/14 18:18
阅读 1K+
收藏 0

GridView

 

[功能]

以前提及过GridView 说也是一种AdapterView 和ListView有点像 今天花了时间 用了一些 有点心得 和大家分享分享

[思路]

1. 既然和ListView像 那么应该还是通过 setAdapter() 来设置吧

2. 因为我想显示的是一些图片信息 必须用到ImageView 不是默认的Adapter用到的TextView 所以只能自己扩展了

[代码]

1. 定义包含GridView 的 main.xmk

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<GridView  
	android:id="@+id/gride"
;    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
<strong>    android:numColumns="3"</strong>
    android:verticalSpacing="5dip"
    />
</LinearLayout>

这行应该注意一下:
android:numColumns="3"

用来设定GridView每行显示的View数目 如果没有这行 会默认每行显示一个View 和ListView 的一样

2. 自定义 class ImageList extends BaseAdapter 其中主要是:

View getView(int position, View convertView, ViewGroup parent)

用于显示目标ImageView
public class ImageList extends BaseAdapter {
    	Activity activity;
    	
    	//construct
    	public ImageList(Activity a ) {
    		activity = a;
    	}
    	
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return image.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return image[position];
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			ImageView iv = new ImageView(activity);
			iv.setImageResource(image[position]);
			return iv;
		}
    }

3. 给GridView指定Adapter
GridView gv = (GridView) findViewById(R.id.gride);
ImageList adapter = new ImageList(this);
gv.setAdapter(adapter);

所以最后效果图是这样的 网格布局

文章出处:http://www.iteye.com/topic/571184

加载中
返回顶部
顶部