<?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:orientation="vertical">
<GridView
android:id="@+id/gv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:horizontalSpacing="5dp"
android:numColumns="4"
android:verticalSpacing="5dp" />
</LinearLayout>
package com.zdsoft.gridviewdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private GridView gv;
private List<ItemShow> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initDate();
}
private void initView() {
gv = (GridView) findViewById(R.id.gv);
}
private void initDate() {
GridViewAdapter gridViewAdapter = new GridViewAdapter(MainActivity.this, getDate());
gv.setAdapter(gridViewAdapter);
}
private List<ItemShow> getDate() {
list = new ArrayList<ItemShow>();
ItemShow item1 = new ItemShow();
item1.setImg(R.drawable.a);
item1.setTxt("奔驰");
list.add(item1);
ItemShow item2 = new ItemShow();
item2.setImg(R.drawable.b);
item2.setTxt("奔驰");
list.add(item2);
ItemShow item3 = new ItemShow();
item3.setImg(R.drawable.c);
item3.setTxt("奔驰");
list.add(item3);
ItemShow item4 = new ItemShow();
item4.setImg(R.drawable.d);
item4.setTxt("宾利");
list.add(item4);
ItemShow item5 = new ItemShow();
item5.setImg(R.drawable.e);
item5.setTxt("奔驰");
list.add(item5);
ItemShow item6 = new ItemShow();
item6.setImg(R.drawable.f);
item6.setTxt("奔驰");
list.add(item6);
ItemShow item7 = new ItemShow();
item7.setImg(R.drawable.g);
item7.setTxt("宾利");
list.add(item7);
return list;
}
}
package com.zdsoft.gridviewdemo;
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
/**
* Created by Administrator on 2016/11/28.
*/
public class GridViewAdapter extends BaseAdapter {
private Context context;
private List<ItemShow> list;
public GridViewAdapter(Context context, List<ItemShow> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.gridview_item, null);
viewHolder.iv_img = (ImageView) convertView.findViewById(R.id.iv_img);
viewHolder.tv_txt = (TextView) convertView.findViewById(R.id.tv_txt);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.iv_img.setImageDrawable(ContextCompat.getDrawable(context, list.get(position).getImg()));
viewHolder.tv_txt.setText(list.get(position).getTxt());
return convertView;
}
private class ViewHolder {
ImageView iv_img;
TextView tv_txt;
}
}
package com.zdsoft.gridviewdemo;
/**
* Created by Administrator on 2016/11/28.
*/
public class ItemShow {
private Integer img;
private String txt;
public Integer getImg() {
return img;
}
public void setImg(Integer img) {
this.img = img;
}
public String getTxt() {
return txt;
}
public void setTxt(String txt) {
this.txt = txt;
}
}
<?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"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_img"
android:layout_width="80dp"
android:layout_height="80dp" />
<TextView
android:id="@+id/tv_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimary"
android:textSize="16sp" />
</LinearLayout>