Android开发——控件基础(八)GridView组件:属性、示例代码、创建思路
网格组件例子(图片):
重要属性
android:numColumns=”auto_fit” //GridView的列数设置为自动
android:verticalSpacing=”10dp” //两行之间的边距
android:horizontalSpacing=”10dp” //两列之间的边距
android:columnWidth=”90dp " //每列的宽度,也就是Item的宽度
android:stretchMode=”columnWidth" //缩放与列宽大小同步
android:cacheColorHint="#00000000" //去除拖动时默认的黑色背景
android:listSelector="#00000000" //去除选中时的黄色底色
android:scrollbars="none" //隐藏GridView的滚动条
android:fadeScrollbars="true" //设置为true就可以实现滚动条的自动隐藏和显示
android:fastScrollEnabled="true" //GridView出现快速滚动的按钮(至少滚动4页才会显示)
代码示例
GridViewActivity://网格布局的java文件
package com.example.administrator.exercise;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.lang.*;
public class GridViewActivity extends AppCompatActivity {
//定义图片数组
private int [] picture = new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,R.drawable.img05,
R.drawable.img06,R.drawable.img07,R.drawable.img08,R.drawable.img09};
//定义网格视图
GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_view);
//初始化网格视图
gridView = (GridView) findViewById(R.id.mGv);
//定义列表
List<Map<String,Object>> listitem = new ArrayList<Map<String, Object>>();
//用循环添加图片
for (int i = 0 ;i<picture.length;i++)
{
//定义map
Map<String,Object> map = new HashMap<String, Object>();
//把图片添加到map里
map.put("image",picture[i]);
//把map添加到list里
listitem.add(map);
}
//定义和初始化适配器
//第一个参数:上下文对象
//第二个参数:list对象
//第三个参数:布局文件,控制图片显示
//第四个参数:字符串数组,指定map中的K
//第五个参数:整形数组,指定布局文件中的组件id
SimpleAdapter simpleAdapter = new SimpleAdapter(getApplicationContext(),listitem,R.layout.cell,new String[]{"image"},new int[]{R.id.image});
//网格视图添加适配器
gridView.setAdapter(simpleAdapter);
}
}
activity_grid_view.xml: //网格布局的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.administrator.exercise.GridViewActivity">
<GridView
android:id="@+id/mGv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="3" //设置列数
android:horizontalSpacing="10dp" //设置行间距
android:verticalSpacing="10dp" //设置列间距
>
</GridView>
</LinearLayout>
cell.xml://控制图片的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_height="75dp"
android:layout_width="160dp"
android:id="@+id/image"
android:scaleType="centerCrop"/>
</LinearLayout>
网格布局的思路
大体思路:
1.创建图片布局文件
2.创建图片数组
3.循环添加图片
4.配置和添加适配器
具体思路:
1.创建图片的布局文件,设置ImageView的属性
2.在java文件中int数组添加图片
3.创建map类型的list数组
4.循环添加图片到map,再将map添加到list
5.创建并初始化SimpleAdapter适配器,添加五个参数
6.为GridView添加适配器