您的位置:首页 > 其它

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

2017-03-04 02:14 330 查看
网格视图<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);


水平有限,请留言!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: