源代码:
package com.mobimtech.com;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class GridViewDemo extends Activity {
/** Called when the activity is first created. */
GridView grid;
ComplexLayoutAdapter adapter;
int image[] = { R.drawable.look, R.drawable.map, R.drawable.delete };
String name[] = { "查看信息", "地理位置", "删除好友" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
grid= (GridView) findViewById(R.id.gride);
adapter=new ComplexLayoutAdapter(this);
grid.setAdapter(adapter);
grid.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
setTitle(name[arg2]);
}
});
}
class ComplexLayoutAdapter extends BaseAdapter {
Activity a;
public ComplexLayoutAdapter(Activity a){
this.a=a;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return image.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return composeLayout(position);
}
public View composeLayout(int i){
LinearLayout layout=new LinearLayout(a);
layout.setOrientation(LinearLayout.VERTICAL);
ImageView iv=new ImageView(a);
iv.setImageResource(image[i]);
layout.addView(iv,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
TextView tv=new TextView(a);
tv.setGravity(Gravity.CENTER_HORIZONTAL);
tv.setTextColor(Color.WHITE);
tv.setText(name[i]);
layout.addView(tv,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
return layout;
}
}
}
布局文件:
<?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/gride"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="3"
/>
</LinearLayout>