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);
}
}