0
点赞
收藏
分享

微信扫一扫

GridView 九宫图


GridView 网格布局 使用[url]http://www.iteye.com/topic/571184[/url]
[color=red]1.普通的GridView[/color]
main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="3" >
    </GridView>

</LinearLayout>



ImageAdapder.java


package com.gv;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class ImageAdapder extends BaseAdapter {
	private Context context;
	private int[] images;

	public ImageAdapder(Context context,int[] images){
		this.context = context;
		this.images = images;
	}
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return images.length;
	}

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

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

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ImageView imageView = new ImageView(context);
		imageView.setImageResource(images[position]);
		return imageView;
	}

}



Activity类


-------------


package com.gv;

import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;

public class GridViewActivity extends Activity {
	private GridView gridView1;
	private int[] images = new int[] { R.drawable.android0001, R.drawable.android0002, R.drawable.android0003, R.drawable.android0004, R.drawable.android0005, R.drawable.android0006, R.drawable.android0007, R.drawable.android0008 };
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        gridView1 = (GridView)findViewById(R.id.gridView1);
        gridView1.setAdapter(new ImageAdapder(this,images));

    }
}




[color=red]2.带ImageView & TextView的GridView[/color]


main.xml [没变]


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView android:id="@+id/myTextView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="3" >
    </GridView>

</LinearLayout>



sub.xml [单个grid的布局]


<?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/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/android0001" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>




Activity类


package com.gv;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class GridViewActivity extends Activity {
	private GridView gridView1;
	private TextView myTextView;

	private int[] images = new int[] { R.drawable.android0001, R.drawable.android0002, R.drawable.android0003, R.drawable.android0004, R.drawable.android0005, R.drawable.android0006, R.drawable.android0007, R.drawable.android0008 };
	private String[] imagesNames = new String[] {"android0001","android0002","android0003","android0004","android0005","android0006","android0007","android0008"};
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myTextView = (TextView)findViewById(R.id.myTextView);
        gridView1 = (GridView)findViewById(R.id.gridView1);
        //注意这里引用了sub.xml的布局,是刚才自己创建的。
        SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.sub,new String[]{"imageView1","textView1"},new int[]{R.id.imageView1,R.id.textView1});
        gridView1.setAdapter(adapter);
        gridView1.setOnItemClickListener(new OnItemClickListener(){

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int postion,
					long arg3) {
				// TODO Auto-generated method stub
				myTextView.setText("你选择了图片id="+postion);
			}
        });

    }

    //获得单元格数据
    public List<Map<String,Object>> getData(){
    	List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
    	for(int i=0; i<images.length&&i<imagesNames.length; i++){
    		Map<String,Object> map = new HashMap<String,Object>();
    		map.put("imageView1", images[i]);
    		map.put("textView1", imagesNames[i]);
    		list.add(map);
    	}
    	return list;
    }
}




[img]http://dl.iteye.com/upload/attachment/0062/2770/ebc262be-41c6-31dc-80eb-d8e10e890894.jpg[/img]



[img]http://dl.iteye.com/upload/attachment/0062/2826/6db1e7d4-1bcc-3f63-91a1-c881ee0fcccf.jpg[/img]


举报

相关推荐

0 条评论