GridView 使用方法详解

来源:互联网 发布:php redis队列处理秒杀 编辑:程序博客网 时间:2024/06/03 17:44

GridView 跟ListView 很类似,Listview 主要以列表形式显示数据,GridView 则是以网格形式显示数据,掌握ListView 使用方法后,会很轻松的掌握GridView的使用方法。

​欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid
微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

本篇文章主要知识点如下

  1. GridView 主要使用方法
  2. GridView 使用Demo

继承关系如下

java.lang.Object   ↳    android.view.View       ↳    android.view.ViewGroup           ↳    android.widget.AdapterView<android.widget.ListAdapter>               ↳    android.widget.AbsListView                   ↳    android.widget.GridView

1. GridView 主要使用方法

GridView 主要通过使用自定义BaseAdapter 来适配数据,进而显示到GridView中。主要使用方法如下:

  1. 准备数据源
    list = new ArrayList<Map<String, Object>>();
  1. 为数据源设置适配器
    MyAdapter adapter = new MyAdapter();
  1. 将适配过后点数据显示在GridView 上
    gridView.setAdapter(adapter);

2. GridView 使用Demo

  • 实现效果如下
GridView
GridView
  • 实现代码如下
public class GridViewMethod extends AppCompatActivity {    private GridView gridView;    private List<Map<String, Object>> list;    private int images[] = {R.mipmap.gril, R.mipmap.ic_launcher, R.mipmap.gril,            R.mipmap.ic_launcher, R.mipmap.gril, R.mipmap.ic_launcher,            R.mipmap.gril, R.mipmap.ic_launcher, R.mipmap.gril,};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_grid_view_method);        gridView = (GridView) findViewById(R.id.gv);        //1. 准备数据源        list = new ArrayList<Map<String, Object>>();        for (int i = 0; i < images.length; i++) {            Map<String, Object> map = new HashMap<String, Object>();            map.put("image", images[i]);            map.put("text", "图片" + i);            list.add(map);        }//      2.为数据源设置适配器        MyAdapter adapter = new MyAdapter();//      3.将适配过后点数据显示在GridView 上        gridView.setAdapter(adapter);        // item点击事件处理        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                //            }        });    }    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int position) {            return list.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            ViewHolder holder = null;            if (convertView == null) {                //第一次加载创建View,其余复用 View                convertView = LayoutInflater.from(GridViewMethod.this).inflate(R.layout.gridview_item_img_tv, null);                holder = new ViewHolder();                holder.imageView = (ImageView) convertView.findViewById(R.id.grid_img);                holder.textView = (TextView) convertView.findViewById(R.id.grid_tv);                // 打标签                convertView.setTag(holder);            } else {                //从标签中获取数据                holder = (ViewHolder) convertView.getTag();            }            //根据key值设置不同数据内容            holder.imageView.setImageResource((Integer)list.get(position).get("image"));            holder.textView.setText((String) list.get(position).get("text"));            return convertView;        }    }    class ViewHolder {        ImageView imageView;        TextView textView;    }}
  • GridView 布局如下
    <GridView        android:id="@+id/gv"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_gravity="center"        android:gravity="center"        android:horizontalSpacing="10dp"        android:numColumns="3"        android:verticalSpacing="10dp" />
  • 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:orientation="vertical">    <ImageView        android:id="@+id/grid_img"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="5dp"        android:gravity="center_horizontal"        android:src="@mipmap/ic_launcher" />    <TextView        android:id="@+id/grid_tv"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="5dp"        android:textColor="@android:color/darker_gray"        android:text="test"        android:gravity="center_horizontal"        android:textSize="25sp" /></LinearLayout>

至此GridView 的基本使用方法结束,如果不是太明白,可以查看上篇文章Listview的使用方法。

​欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid
微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。


点击阅读原文,获取更多福利




​欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid
微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

原创粉丝点击