package org.wangliang.gridview;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
setupAdapter();
}
private void setupAdapter() {
// TODO Auto-generated method stub
GridView gridView = (GridView) findViewById(R.id.emotions);
ArrayList<HashMap<String,Object>> data = new ArrayList<HashMap<String,Object>>();
Field[] fileds = R.drawable.class.getDeclaredFields();
for(Field f:fileds) {
if(!f.getName().equals("icon")) {
int id;
try {
id = f.getInt(null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "wrong!", 1).show();
return ;
}
HashMap<String,Object> map = new HashMap<String,Object>();
map.put("image", id);//这里使用的是资源的id
data.add(map);
}
}
SimpleAdapter adapter = new SimpleAdapter(
this, data, R.layout.gridview_item,
new String[] {"image"},
new int[] {R.id.emotion_item});
gridView.setAdapter(adapter);
}
}
//下面是布局文件gridview..xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
android:id="@+id/emotions"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:columnWidth="40dp"
>
</GridView>
</LinearLayout>
//下面是布局文件gridview_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/emotion_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="50" android:layout_gravity="center" > </ImageView> </LinearLayout>