四十、【GridView】

287 阅读1分钟

一、布局文件

设置多少列:numColumns 设置分隔:horizontalSpacing verticalSpacing

    <GridView
        android:id="@+id/gv_grid"
        android:layout_width="match_parent"
        android:layout_height="165dp"
        android:gravity="center"
        android:numColumns="5"
        android:horizontalSpacing="1dp"
        android:verticalSpacing="1dp">
    </GridView>

二、SimpleAdapter

两个全局的数组

    private int[] icons = new int[] {
            R.drawable.indicator_corner_bg,R.drawable.indicator_corner_bg,
            R.drawable.indicator_corner_bg,R.drawable.indicator_corner_bg,
            R.drawable.indicator_corner_bg, R.drawable.indicator_corner_bg,
            R.drawable.indicator_corner_bg,R.drawable.indicator_corner_bg,
            R.drawable.indicator_corner_bg
    };

    private String[] names = new String[] {
            "测试一","测试二",
            "测试一","测试二",
            "测试一","测试二",
            "测试一","测试二",
            "测试一","测试二",
    };

    private List<Map<String,Object>> initGridViewData() {
        List<Map<String,Object>> listItems = new ArrayList<>();
        for (int i = 0; i < icons.length; i++) {
            // 如果要加载网络图片 icons[i] 替换成 BitmapHelper.getBitmap("http://192.168.1.119:8080/strutsproj/upload/type1.jpg")
            Map<String, Object> listItem = new HashMap<>();
            listItem.put("icon",icons[i]);
            listItem.put("name",names[i]);
            listItems.add(listItem);
        }
        return  listItems;
    }

    private  void  initGridView() {
        SimpleAdapter mSimpleAdapter = new SimpleAdapter(
                this,
                initGridViewData(),
                R.layout.gridview_item_layout,
                new String[]{"icon","name"},
                new int[]{R.id.iv_image, R.id.tv_itemname}
        );

        // 如果是加载网络图片,这个方法要写
        mSimpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() {
            @Override
            public boolean setViewValue(View view, Object data,
                                        String textRepresentation) {
                //判断是否为我们要处理的对象
                if(view instanceof ImageView && data instanceof Bitmap){
                    ImageView iv = (ImageView) view;
                    iv.setImageBitmap((Bitmap) data);
                    return true;
                }else
                    return false;
            }
        });

        mGridView.setAdapter(mSimpleAdapter);

        // 点击
        mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
           
            }
        });

    }