zoukankan      html  css  js  c++  java
  • 安卓高级组件-----网格视图

            网格视图<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);

    水平有限,请留言!

  • 相关阅读:
    【POJ
    【OpenJ_Bailian
    【Aizu
    【OpenJ_Bailian
    leetcode-746-Min Cost Climbing Stairs(动态规划)
    leetcode-744-Find Smallest Letter Greater Than Target(改进的二分查找)
    leetcode-728-Self Dividing Numbers
    leetcode-717-1-bit and 2-bit Characters
    leetcode-697-Degree of an Array
    leetcode-682-Baseball Game
  • 原文地址:https://www.cnblogs.com/divingpig/p/6499277.html
Copyright © 2011-2022 走看看