GridView 网格布局 使用

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" 
    android:numColumns="3"
    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);

 

 

 

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

GridView 网格布局 使用

你可能感兴趣的:(android,xml)