GridView组件的简单使用

GridView组件的简单使用

1、利用数据适配器将数据填充到GridView中
在这里插入图片描述
2、数据适配器Adapter

  • ArrayAdapter(适用于数组,将数组的值包装成多个列表项,通常只能显示一行文字)
  • SimpleAdapter(适用于list列表,将list的值包装成多个列表项,可以自定义多种效果)
  • SimpleCursorAdapter(适用于数据库,将数据库的内容以列表的形式展现)
  • BaseAdapter(自己定制)

这里以SimpleAdapter为例,它的构造函数需要五个参数,分别是context、List<Map<K,V>>、item布局文件、new String[]{key集合}、new int[]{要显示的控件的id}
例如:

SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, list, R.layout.item, new String[]{"image"}, new int[]{R.id.imageview});

3、List<Map<K,V>>
K是自己定义的,这里的K会在new String[]{key集合}用到,V则是要显示的资源信息,比如R.drawable.图片名,为每个item都实例化一个Map,添加到list中即可。Map中可以添加item的任何信息,比如Map.put(“title”, “头像”)。
例如:

List<Map<String, Object>> list = new ArrayList<>();
        for(int i = 0; i < images.length; i++) {
            Map<String, Object> map = new HashMap<>();
            map.put("image", images[i]);
            list.add(map);
        }

4、最后为GridView添加数据适配器
例如:

gridView.setAdapter(simpleAdapter);

效果:
在这里插入图片描述
另外:用BaseAdapter
自定义一个类继承自BaseAdapter,并实现其中的四个方法。

class ImageAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            return images.length; //图片的数量
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return 0;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            ImageView imageView;
            if(view == null) {
                imageView = new ImageView(MainActivity.this);
                imageView.setLayoutParams(new GridView.LayoutParams(400, 267)); //设置宽高
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); //保持纵横比来缩放
            }
            else {
                imageView = (ImageView)view;
            }
            imageView.setImageResource(images[i]);
            return imageView;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值