关于GridView的理解

下面是效果图:



下面是Layout的代码:

<?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" >
    
    <!--
             android:numColumns="":每一行显示多少列
		     android:horizontalSpacing="":两列之间的间距
		     android:verticalSpacing="":两行之间的间距
    -->
    
		<GridView
		    android:id="@+id/gridView"
		     android:layout_width="wrap_content"
		     android:layout_height="wrap_content"
		     android:numColumns="3"
		     android:horizontalSpacing="10dp"
		     android:verticalSpacing="10dp"
		    >
		    </GridView>
</LinearLayout>


下面是Activity的代码:

package gridview2;


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

import com.example.tab.R;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class gridview1 extends ActionBarActivity{
		private GridView gridView;
		private List<Map<String,Object>>list1;
		
		//加载图片源
		private int[] icon={R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,
				R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,
				R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,};
		//为每个图片起名字
		private String[] iconName = {"图片","图片","图片","图片","图片",
				"图片","图片","图片","图片","图片","图片","图片",};
		private SimpleAdapter adapter;
		@Override
		protected void onCreate(Bundle savedInstanceState) {
			// TODO Auto-generated method stub
			super.onCreate(savedInstanceState);
			setContentView(R.layout.gridview);
			
			gridView = (android.widget.GridView)findViewById(R.id.gridView);
			//1、准备数据源
			//2、新建适配器(SimpleAdapter)
			//3、GridView加载适配器
			//4、GridView配置事件监听器(OnItemClickLister)
			list1 = new ArrayList<Map<String,Object>>();
			//getData();
			//R.layout.gridview_item:SimpleAdapter所关联的布局
			adapter = new SimpleAdapter(this, getData(), R.layout.gridview_item, new String[]{"image","text"},new int[] {R.id.image,R.id.tv1});
			gridView.setAdapter(adapter);
			
			
			//对gridView进行点击事件
			gridView.setOnItemClickListener(new OnItemClickListener() {

				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1,
						int position, long id) {
					// TODO Auto-generated method stub
					Toast.makeText(getApplicationContext(), "我是"+iconName[position], 1).show();
				}
			});
		}
		
		
		//获取数据源
		private List<Map<String,Object>> getData() {
			// TODO Auto-generated method stub
			
			for(int i=0;i<icon.length;i++){
				Map<String,Object> map = new HashMap<String,Object>();
				map.put("image", icon[i]);
				map.put("text", iconName[i]);
				list1.add(map);
			}
				
			return list1;
		}
}

下面是关于SimpleAdapter关联的布局样式:

<?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" 
    android:gravity="center"
    >
    <ImageView
         android:layout_width="80dp"
         android:layout_height="80dp"
         android:src="@drawable/ic_launcher"
        />
    <TextView
        android:id="@+id/tv1"
        android:layout_marginTop="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="文字" 
        />

</LinearLayout>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值