我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android网格视图GridView的使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android网格视图GridView的使用

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。

网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字、图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现。

GridView常用的XML属性:


  本文将以一个具体的实例来说明如何使用GridView控件实现手机屏幕上各个应用软件图标的摆放,以及应用软件名称的显示。

  完成后的程序运行效果如图1所示。

图1 主界面显示效果

1.界面布局

  通过查看GridView的API帮助文档(http://developer.android.com/reference/android/widget/GridView.html),可以了解到GridView的常用xml属性如图2所示。

  其中,android:columnWidth[int]用于设置每列的宽度;android:gravity[int]用于设置每个网格的比重;android:horizontalSpacing[int]用于设置网格之间列的默认水平距离;android:numColumn[int]用于设置列数;android:stretchMode[int]用于设置列应该以何种方式填充可用空间;android:verticalSpacing[int]用于设置网格之间行的默认垂直距离。

  了解了上述的GridView常用xml属性之后,我们就可以完成对主界面的xml布局文件编写了。在xml布局文件中,我们使用LinearLayout对整个界面进行垂直布局,然后在该布局中添加一个GridView控件即可。具体的xml布局文件源码如下:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >
   <GridView 
   android:id="@+id/gridView"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:numColumns=""
   android:horizontalSpacing="dp"
   android:verticalSpacing="dp">
   </GridView>
  </LinearLayout> 

  在GridView控件中,我们通过android:numColumns="4"指定了网格的列数为4;通过android:horizontalSpacing="10dp"和android:verticalSpacing="10dp"指定了网格之间的水平距离和垂直距离都为10dp。

2.网格元素布局

  如图1所示,在每个网格内,我们都需要显示两项内容:应用软件图标以及应用软件名称。因此,我们还需要对网格内元素进行相应的布局。

  我们可以在项目工程的layout目录下新建一个名为“griditeminfo.xml”的xml布局文件,完成对网格内元素的布局。在该xml布局文件中,我们使用相对布局RelativeLayout对网格内的元素进行排列,将一个ImageView控件以水平居中的形式放置在网格内(上方),用来显示应用程序的图标;将一个TextView控件以水平居中的形式放置在网格内(下方),用来显示应用程序的名称。具体的griditeminfo.xml源码如下:


<?xml version="." encoding="utf-"?>
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content" >  
   <ImageView
   android:id="@+id/itemImage"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerHorizontal="true" >
   </ImageView>
   <TextView
   android:id="@+id/itemName"
   android:layout_below="@+id/itemImage"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerHorizontal="true" >
   </TextView>
  </RelativeLayout> 

3.资源储存

  在该实例中,我们需要对众多的应用软件图标以及应用软件名称进行储存。很显然,应用软件图标以及应用软件名称之间存在着一一对应的关系,我们可以使用HashMap分别对应用软件图标以及应用软件名称进行存储,然后再将HashMap添加到ArrayList中,便可以完成资源的储存了。具体实现方法如下:


//将图标图片和图标名称存入ArrayList中
  //Author:博客园-依旧淡然
  ArrayList<HashMap<String, Object>> item = new ArrayList<HashMap<String, Object>>();
  for (int i = ; i < resIds.length; i++) {
   HashMap<String, Object> map = new HashMap<String, Object>();
   map.put("itemImage", resIds[i]);
   map.put("itemName", name[i]);
   item.add(map);
  }

  其中,数组resIds[]储存着应用软件图标的资源id;数组name[]储存着应用软件名称,并通过for循环遍历语句将其存入了HashMap中。

4.简单适配器SimpleAdapter

  简单适配器SimpleAdapter继承自BaseAdapter,用于将静态数据映射到xml文件中定义好的视图当中。比如可以指定静态数据为由Map组成的ArrayList。在ArrayList中每个条目对应List中的一行,Map可以包含多项数据。

  SimpleAdapter的构造方法如下:


public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to); 

  其中,参数context用于指定SimpleAdapter所关联的上下文对象;参数data用于指定Map列表;参数resource用于指定资源标识符(即列表项的视图布局);参数from用于指定Map列表中每项数据所对应的标签;参数to用于指定Map列表中每项数据在布局文件中所要匹配的对象。

  在该实例中,实现SimpleAdapter的构造方法如下所示:


 //SimpleAdapter对象,匹配ArrayList中的元素
  //Author : 依旧淡然
  SimpleAdapter simpleAdapter = new SimpleAdapter
  (this, item, R.layout.griditeminfo, new String[] {"itemImage","itemName"},
   new int[] {R.id.itemImage,R.id.itemName}) {
  }; 

  实现了简单适配器SimpleAdapter之后,我们还需要将该简单适配器SimpleAdapter添加到GridView对象当中去,可以通过如下方法实现:


mGridView.setAdapter(simpleAdapter);

5.事件监听

  在实际的应用当中,我们需要对用户的操作进行监听,即需要知道用户选择了哪一个应用软件。

  在网格控件GridView中,常用的事件监听器有两个:OnItemSelectedListener和OnItemClickListener。其中,OnItemSelectedListener用于项目选择事件监听,OnItemClickListener用于项目点击事件监听。

  要实现这两个事件监听很简单,继承OnItemSelectedListener和OnItemClickListener接口,并实现其抽象方法即可。其中,需要实现的OnItemClickListener接口的抽象方法如下:


public void onItemClick(AdapterView<?> parent, View view, int position, long id);

  需要实现的OnItemSelectedListener接口的抽象方法有两个,分别如下:


  public void onItemSelected(AdapterView<?> parent, View view, int position, long id);
  public void onNothingSelected(AdapterView<?> parent);

您可能感兴趣的文章:Android基于OpenGL在GLSurfaceView上绘制三角形及使用投影和相机视图方法示例Android开发之自定义View(视图)用法详解Android中的ViewPager视图滑动切换类的入门实例教程Android视图控件架构分析之View、ViewGroupAndroid应用开发中自定义ViewGroup视图容器的教程Android App中自定义View视图的实例教程Android中在GridView网格视图上实现item拖拽交换的方法Android listview多视图嵌套多视图Android Moveview滑屏移动视图类完整实例Android视图的绘制流程(上) View的测量


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android网格视图GridView的使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android网格视图GridView的使用

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。 网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素
2022-06-06

Android中在GridView网格视图上实现item拖拽交换的方法

GridView基础 新建一个HelloGridView的工程 修改main.xml代码如下: 2022-06-06

Android App中的GridView网格布局使用指南

零、常用属性 首先我们来看看GridView的一些常用的属性吧 1.android:numColumns=”auto_fit” //GridView的列数设置为自动 2.android:columnWidth=”90dp ” //每列的宽
2022-06-06

Android应用开发中使用GridView网格布局的代码示例

基本布局演示 1. 定义包含GridView 的 main.xmk 2022-06-06

Android开发之使用GridView展示图片的方法

本文实例讲述了Android使用GridView展示图片的方法。分享给大家供大家参考,具体如下: 今天说说GridView的使用。 所谓GvidView翻译过来就是网格布局:是一个ViewGroup以网格显示它的子视图(view)元素,即二
2022-06-06

Android:控件GridView的使用实例

如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView。 2022-06-06

Android使用GridView实现日历的方法

在开发中可能会遇到某些情况下需要用到日历的功能,并且还要在日历上加标签什么的,最重要的就是android自带的日历由于各个系统版本不同导致日历的样式也不同,这样就会导致使用起来比较麻烦..而且在日历中加标签也不好实现...所以很多时候日历都
2023-05-30

Android视图绑定viewBinding的使用介绍

最近这段时间在学习Kotlin,突然发现谷歌已经把kotlin-android-extensions插件废弃,目前推荐使用ViewBinding来进行替代,接下来通过本文给大家分享Android使用ViewBinding的详细步骤,感兴趣的朋友一起学习吧
2023-01-28

Android视图绑定viewBinding如何使用

本文小编为大家详细介绍“Android视图绑定viewBinding如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android视图绑定viewBinding如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
2023-07-05

Android使用GridView实现日历的简单功能

简单的日历实现,只是显示了每一个月,没有显示当天和记事这些功能主要是计算月初是周几,月末是周几,然后相应的显示上一月多少天和下一月多少天。 先看一下关于日期的用到的几个工具类public static int ge
2022-06-06

浅谈Android中视图动画的属性与使用

简介Android动画主要包括视图动画和属性动画,视图动画包括Tween动画和Frame动画,Tween动画又包括渐变动画、平移动画、缩放动画、旋转动画。 Tween动画的基本属性 目标 View; 时常 durati
2022-06-06

Android入门之ViewFlipper翻转视图的使用详解

本篇给大家带了的是ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放!本篇我们我们会使用两个例子:一个自动播放首页轮播页一个手动可左右滑动道页的轮播页来说透这个组件的使用,感兴趣的可以了解一下
2022-11-21

PythonDjango通用视图和错误视图的使用代码

这篇文章主要介绍了PythonDjango通用视图和错误视图的使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-15

Android使用VideoView播放本地视频和网络视频的方法

1、效果展示2、布局文件 2022-06-06

Android使用Notification实现宽视图通知栏(二)

Notification是在你的应用常规界面之外展示的消息。当app让系统发送一个消息的时候,消息首先以图表的形式显示在通知栏。要查看消息的详情需要进入通知抽屉(notificationdrawer)中查看。通知栏和通知抽屉(notific
2022-06-06

Android使用ViewPager加载图片和轮播视频

作为Android基础组件之一,大家对viewpager已经很熟悉了,网上也有很多使用viewpager来加载图片的案例。但是像微信那样点击图片,可以轮播显示图片和视频的例子却没找到。正巧项目中有需求,可以就花时间写了下,现在给一下核心代码
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录