安卓高级组件-----网格视图

        网格视图<GridView>安卓常用的规划容器,视图自身分为行列的矩阵,单元格放置自己的组件和内容,通常是放图片和文字。网格视图和列表视图有着共同的父类:AbsListView,区别在于:ListView显示的是一个列,而GridView可以通过控制列的数目。数据配置方面,GridView和ListView类似,都要通过适配器进行数据配置。

GridView常用的xml属性:

                  android:columnWidth       列宽度

                  android:numColumns       列数目

                  android:gravity                设置对其方式

                  android:horizentalSpacing      元素水平间距

                  android:strechMode          单元格的拉伸模式

                  android:verticleSpacing     元素的垂直间距

下面用一个显示图片的实例简单使用一下GridView:

1.布局文件中加入一个GridView,设置列数目为3

    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3" >
    </GridView>

2.对于单元格内部,我们再使用一个xml文件设置布局(单元格内布局),这个文件为content.xml,具体细节如下:

<?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/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" />

</LinearLayout>

3.获取网格列表,之后定义图片数组和名字数组,并将这两个数组塞入List<Map<String,Object>>链表

        gv = (GridView)findViewById(R.id.gridView1);
        
        img = new int[]{R.drawable.img1,R.drawable.img2,R.drawable.img3,
                R.drawable.img4,R.drawable.img5,R.drawable.img6,
                R.drawable.img7,R.drawable.img8,R.drawable.img9};
        
        String[] name = new String[]{"大娃","二娃","三娃","四娃","五娃","六娃","七娃","小金刚","爷爷"};
        
        List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();
        
        for(int i = 0; i < img.length - 1;i ++){
            Map<String, Object> map = new HashMap<String,Object>();
            map.put("image", img[i]);
            map.put("name", name[i]);
            listItems.add(map);
        }

4.创建一个适配器,指定布局,数据,数据来源,数据指向,并绑定给网格布局

        SimpleAdapter s = new SimpleAdapter(this, listItems, R.layout.content,
                new String[]{"image","name"}, new int[]{R.id.imageView1,R.id.textView1});
        
        gv.setAdapter(s);

水平有限,请留言!

posted @ 2017-03-04 02:13  爱潜水的猪  阅读(1204)  评论(0编辑  收藏  举报