1.添加控件
<GridView
android:padding="10dp"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="15dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth" />
2.自定义item
<?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:gravity="center|clip_vertical"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/desktop_camera" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拍照" />
</LinearLayout>
3.自定义适配器
public class MyGridViewAdapter extends BaseAdapter{
private Context context;
private String[] items;
private int[] icons;
public MyGridViewAdapter(Context context,String[] items,int[] icons) {
this.context=context;
this.items=items;
this.icons=icons;
}
@Override
public int getCount() {
return items.length;
}
@Override
public Object getItem(int position) {
return items[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=null;
//优化处理
if(convertView==null){
LayoutInflater inflater=LayoutInflater.from(context);
view =inflater.inflate(R.layout.item, null);
}else{
view=convertView;
}
//获取视图中的控件对象
ImageView img=(ImageView) view.findViewById(R.id.imageView1);
TextView txt=(TextView) view.findViewById(R.id.textView1);
//绑定资源
img.setImageResource(icons[position]);
txt.setText(items[position]);
return view;
}
}
4.活动中获取GridView控件并绑定适配器
GridView gv;
MyGridViewAdapter adapter;
String[] items={"拍照","好友"};
int[] icons={R.drawable.desktop_camera,R.drawable.desktop_friend};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.face);
adapter=new MyGridViewAdapter(this, items, icons);
gv=(GridView)findViewById(R.id.gridview);
gv.setAdapter(adapter);
}