Android 自定义GridView六宫格

来源:互联网 发布:战术无线通信与网络 编辑:程序博客网 时间:2024/06/05 19:56

1、gridview的item布局:grid.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/theme_bg_normal"    android:padding="10dp">    <ImageView        android:id="@+id/imageView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"/>    <TextView        android:id="@+id/textView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"/></LinearLayout>

2、gridview布局:gridview.xml

<LinearLayout 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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    tools:context="com.example.shaolin.myapplication.GridViewActivity">    <GridView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@color/theme_bg"        android:id="@+id/gridView"        android:layout_gravity="center_vertical"        android:numColumns="auto_fit"        android:verticalSpacing="1dp"        android:horizontalSpacing="1dp"        android:columnWidth="90dp"        android:stretchMode="columnWidth"        android:gravity="center"/></LinearLayout>

3、例子:GridView.java

package com.example.shaolin.myapplication;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.GridView;import android.widget.ListView;import android.widget.SimpleAdapter;import java.util.ArrayList;import java.util.HashMap;public class GridViewActivity extends ActionBarActivity {    private GridView gridView;    private int[] image={            R.mipmap.xinshou,            R.mipmap.renwu,            R.mipmap.paihang,            R.mipmap.huodong,            R.mipmap.choujiang,            R.mipmap.xinxi,    };    private String[] text={"新手", "任务" , "排行", "活动" ,"抽奖", "信息"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_grid_view);        gridView= (GridView) findViewById(R.id.gridView);        ArrayList<HashMap<String, Object>> list=new ArrayList<HashMap<String,Object>>();        for(int i=0;i<image.length;i++)        {            HashMap<String, Object>  map = new HashMap<String, Object>();            map.put("ItemImage", image[i]);//添加图像资源的ID            map.put("itemtext", text[i]);            list.add(map);        }        //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应        SimpleAdapter  adapter=new SimpleAdapter(this, //数据来源                list,R.layout.grid,//XML实现                new String[]{"ItemImage","itemtext"}, //动态数组与ImageItem对应的子项                new int[]{R.id.imageView,R.id.textView}//  //ImageItem的XML文件里面的一个ImageView,两个TextView ID        );        //添加并且显示        gridView.setAdapter(adapter);        //添加消息处理        gridView.setOnItemClickListener(clickListener);    }    private AdapterView.OnItemClickListener clickListener=new AdapterView.OnItemClickListener() {        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {            HashMap<String, Object>  item=(HashMap<String, Object>)arg0.getItemAtPosition(arg2);            setTitle((String)item.get("itemtext"));        }    };}



0 0