GridView的用法

GirdView和listView很類似,不過就是佈局有些差異,其他都沒什麼。

廢話不多說,直接上代碼。(充分體現實幹精神有木有。。)



先說說它的效果圖














----------------------我是華麗的分割線---------------------------------------------------------------------





首先佈局文件,在activity_main.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:orientation="vertical"
    tools:context="com.example.gridviewdemo.MainActivity" >

    <!-- gravity居中顯示,
     ndroid:horizontalSpacing="1pt"   表示每個item水平間隔的距離, 
     android:verticalSpacing="1pt"    表示每個item垂直間隔的距離
     android:numColumns="4"           表示一行有四個Item
    -->
    <GridView
        android:id="@+id/main_gv"
        android:layout_width="match_parent"
        android:layout_height="254dp"
        android:gravity="center"
        android:horizontalSpacing="1pt"
        android:numColumns="4"
        android:verticalSpacing="1pt" >
    </GridView>

    <ImageView
        android:id="@+id/main_iv"
        android:layout_width="match_parent"
        android:layout_height="217dp"
        android:layout_alignBottom="@id/main_gv" />

</LinearLayout>



這裏是activity.java...

package com.example.gridviewdemo;

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.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

	private GridView main_gv;
	private ImageView main_iv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 1.獲取UI控件id
		initView();

		// 2.初始化數據
		initData();

	}

	private void initData() {

		List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();

		final int[] drawable_id = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.e,
				R.drawable.d, R.drawable.f, R.drawable.g, R.drawable.h,
				R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l,
		};
		
		
		//這裏是在適配器裏統計圖片的數目及提供圖片的position
		for (int i = 0;i <drawable_id.length; i++ ) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("image", drawable_id[i]);
			listItems.add(map);
		}
		
		
		// 3.到drawable加載幾張圖片,設置設配器,this, null, 0, null, null這裏5個參數,它要什麼,我給什麼
	//	SimpleAdapter sa = new SimpleAdapter(this, listItems, R.layout.cell(這裏隨便寫個佈局),
	//			new String[]{"image"}(可以寫死), new int[]{R.id.image1}(可以寫死));
		SimpleAdapter sa = new SimpleAdapter(this, listItems, R.layout.cell,
				new String[]{"image"}, new int[]{R.id.image1});

		
		//4.GridView設置適配器
		main_gv.setAdapter(sa);
		
		
		
		//5.設置點擊事件
		main_gv.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> aview, View view, int position,
					long id) {
				//設置圖片的來源
				main_iv.setImageResource(drawable_id[position]);
			}
			
		});
	}
	
	private void initView() {
		main_gv = (GridView) findViewById(R.id.main_gv);
		main_iv = (ImageView) findViewById(R.id.main_iv);

	}

}






發佈了33 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章