http://blog.csdn.net/qq435757399/article/details/8008638(转)
效果图:
1.src文件夹下 ShowActivity.java文件内容:
- package com.jun.activity;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import com.jun.adapter.MyAdapter;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- import android.widget.GridView;
- import android.widget.SimpleAdapter;
- public class ShowActivity extends Activity {
- private GridView gridView=null;
- private MyAdapter adapter=null;
- private SimpleAdapter adapter1=null;
- private List<HashMap<String,Object>> list=null;
- private HashMap<String,Object> map=null;
- private String data[]={"图片1","图片2","图片3","图片4","图片5","图6","图片7","图片8","图片9",
- "图片10","图片11","图片12","图片13","图片14","图片15","图片16"};
- private int imgId[]={R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,
- R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,
- R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a};
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_show);
- init();
- setData();
- }
- private void init(){
- gridView=(GridView) findViewById(R.id.grid_view);
- list=new ArrayList<HashMap<String,Object>>();
- }
- private void setData(){
- // 使用BaseAdapter添加数据
- adapter=new MyAdapter(ShowActivity.this, data, imgId);
- gridView.setAdapter(adapter);
- // 使用SimpeAdapter添加数据
- // for(int i=0;i<data.length;i++){
- //
- // map=new HashMap<String, Object>();
- //
- // map.put("text", data[i]);
- // map.put("img", imgId[i]);
- // list.add(map);
- //
- // }
- // adapter1=new SimpleAdapter(ShowActivity.this, list, R.layout.gridview_item, new String[]{"text","img"}, new int[]{R.id.gridview_text,R.id.gridview_img});
- // gridView.setAdapter(adapter1);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.activity_show, menu);
- return true;
- }
- }
2.ShowActivity布局文件activity_show.xml文件内容:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/activity_background" >
- <TextView
- android:id="@+id/title_bar_text"
- android:layout_width="match_parent"
- android:layout_height="45dip"
- android:layout_alignParentTop="true"
- android:gravity="center_vertical|center_horizontal"
- android:background="@drawable/theme_title_red"
- android:text="@string/test"
- android:textSize="20dip"
- android:textColor="#fff"
- tools:context=".ShowActivity" />
- <GridView
- android:id="@+id/grid_view"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/title_bar_text"
- android:layout_marginLeft="1dip"
- android:layout_marginRight="1dip"
- android:numColumns="2"
- android:columnWidth="5dip"
- android:cacheColorHint="#00000000"
- ></GridView>
- </RelativeLayout>
3.继承自BaseAdapter适配器类MyAdapter.java文件内容:
- package com.jun.adapter;
- import com.jun.activity.R;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class MyAdapter extends BaseAdapter {
- private String data[]=null;
- private int imgId[]=null;
- private Context context=null;
- private LayoutInflater inflater=null;
- public MyAdapter(Context context,String[] data, int[] imgId) {
- super();
- this.data = data;
- this.imgId = imgId;
- this.context = context;
- inflater=LayoutInflater.from(context);
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return data.length;
- }
- @Override
- public Object getItem(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- private class Holder{
- TextView tv=null;
- ImageView img=null;
- public TextView getTv() {
- return tv;
- }
- public void setTv(TextView tv) {
- this.tv = tv;
- }
- public ImageView getImg() {
- return img;
- }
- public void setImg(ImageView img) {
- this.img = img;
- }
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- // 获得holder以及holder对象中tv和img对象的实例
- Holder holder;
- if(convertView==null){
- convertView=inflater.inflate(R.layout.gridview_item, null);
- holder=new Holder();
- holder.tv=(TextView) convertView.findViewById(R.id.gridview_text);
- holder.img=(ImageView) convertView.findViewById(R.id.gridview_img);
- convertView.setTag(holder);
- }else{
- holder=(Holder) convertView.getTag();
- }
- // 为holder中的tv和img设置内容
- holder.tv.setText(data[position]);
- holder.img.setImageResource(imgId[position]);
- // 注意 默认为返回null,必须得返回convertView视图
- return convertView;
- }
- }
4.GridView组件上面的布局: gridview_item.xml文件内容:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/activity_background" >
- <ImageView
- android:id="@+id/gridview_img"
- android:layout_width="120dip"
- android:layout_height="120dip"
- android:layout_margin="10dip"
- android:background="@drawable/four_bg"
- android:src="@drawable/a" />
- <TextView
- android:id="@+id/gridview_text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/gridview_img"
- android:gravity="center_vertical|center_horizontal"
- android:textColor="#000"
- android:textSize="14dip"
- tools:context=".ShowActivity" />
- </RelativeLayout>