博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发10.3:UI组件GridView网格视图
阅读量:6624 次
发布时间:2019-06-25

本文共 2909 字,大约阅读时间需要 9 分钟。

GridView(网格视图)

概述

GridView用于在界面上按行、列分布的方式来显示多个组件
        GridView和ListView有共同的父类 : AbsListView
        区别:ListView只显示一列,而GridView可以显示多列
        GridView也需要通过Adapter来提供显示的数据

XML属性

android:columnWidth setColumnWidth(int) 设置列的宽度
android:gravity setGravity(int) 设置对齐方式
android:horizontalSpacing setHorizontalSpacing(int) 设置各元素之间的水平间距
android:numColumns setNumColumns(int) 设置列数
android:verticalSpacing setVerticalSpacing(int) 设置各元素之间 的垂直间距

案例:带预览的图片

Android_GridView/res/layout_mian.xml
Android_GridView/res/cell.xml
java代码
package com.example.android_gridview;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.GridView;import android.widget.ImageView;import android.widget.SimpleAdapter;public class MainActivity extends Activity {		GridView grid;	ImageView image;	int[] imageIds = new int[]			{				R.drawable.one,				R.drawable.two,				R.drawable.three,				R.drawable.four,				R.drawable.one_one,				R.drawable.two_two,				R.drawable.three_three,				R.drawable.four_four			};	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		//创建一个List对象,List对象的元素是Map		List
> listItems = new ArrayList
>(); for(int i = 0 ; i < imageIds.length; i++){ Map
listItem = new HashMap
(); listItem.put("image", imageIds[i]); listItems.add(listItem); } //获取显示图片的 ImageView image = (ImageView) findViewById(R.id.image01); grid = (GridView) findViewById(R.id.grid01); //创建一个SimpleAdapter SimpleAdapter simpleAdapter = new SimpleAdapter (this, listItems,R.layout.cell,new String[] {"image"},new int[] {R.id.image1}); //为GridView设置Adapter grid.setAdapter(simpleAdapter); //添加列表项被选中的监听器 grid.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView
parent, View view, int position, long id) { // TODO Auto-generated method stub //显示当前被选中的图片 image.setImageResource(imageIds[position]); } @Override public void onNothingSelected(AdapterView
arg0) { // TODO Auto-generated method stub } }); //添加列表被单击的监听器 grid.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView
parent, View view, int position, long id) { // TODO Auto-generated method stub //显示被单击的图片 image.setImageResource(imageIds[position]); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}
调试效果

 

你可能感兴趣的文章
DNGuard 免费的DotNet加密保护工具 V1.0
查看>>
编程中的命名设计
查看>>
easyui form validate总是返回false原因
查看>>
在(CListView)列表视图中添加右键菜单的方法
查看>>
自定义服务器控件(处理不同的浏览器)
查看>>
解决IE6-IE7下li上下间距
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>
Post请求
查看>>
labview 中activex的初步使用方法
查看>>
JSP与JavaBeans
查看>>
解决Android中TextView首行缩进的问题
查看>>
oracle 查询哪些表分区
查看>>
Java排序算法(三):直接插入排序
查看>>
Python 列表 min() 方法
查看>>
C语言中 Float 数据结构的存储计算
查看>>
HSF源码阅读
查看>>
【死磕jeesite源码】Jeesite配置定时任务
查看>>
程序8
查看>>
TBluetoothLEDevice.UpdateOnReconnect
查看>>