Android入门第八篇之GridView 九宫图

2023-10-27

               

本文来自http://blog.csdn.net/hellogv/

       GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟前文ListView的极其类似。。。。也算是我偷懒一下,嘻嘻嘻嘻。。。。

       先来贴出本文代码运行的结果:

1

 

本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。

main.xml源代码如下,本身是个GirdView,用于装载Item:

<?xml version="1.0" encoding="utf-8"?><GridView xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/gridview"    android:layout_width="fill_parent"     android:layout_height="fill_parent"    android:numColumns="auto_fit"    android:verticalSpacing="10dp"    android:horizontalSpacing="10dp"    android:columnWidth="90dp"    android:stretchMode="columnWidth"    android:gravity="center"/>

介绍一下里面的某些属性:

android:numColumns="auto_fit" ,GridView的列数设置为自动

android:columnWidth="90dp",每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth",缩放与列宽大小同步
android:verticalSpacing="10dp",两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dp
android:horizontalSpacing="10dp",两列之间的边距。

 

接下来介绍night_item.xml,这个XML跟前面ListView的ImageItem.xml很类似:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout          xmlns:android="http://schemas.android.com/apk/res/android"          android:layout_height="wrap_content"          android:paddingBottom="4dip" android:layout_width="fill_parent">         <ImageView                android:layout_height="wrap_content"                android:id="@+id/ItemImage"                android:layout_width="wrap_content"                android:layout_centerHorizontal="true">          </ImageView>         <TextView                android:layout_width="wrap_content"                android:layout_below="@+id/ItemImage"                android:layout_height="wrap_content"                android:text="TextView01"                android:layout_centerHorizontal="true"                android:id="@+id/ItemText">         </TextView></RelativeLayout>

 

最后就是JAVA的源代码了,也跟前面的ListView的JAVA源代码很类似,不过多了“选中”的事件处理:

    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        GridView gridview = (GridView) findViewById(R.id.gridview);                //生成动态数组,并且转入数据        ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();        for(int i=0;i<10;i++)        {         HashMap<String, Object> map = new HashMap<String, Object>();         map.put("ItemImage", R.drawable.icon);//添加图像资源的ID   map.put("ItemText", "NO."+String.valueOf(i));//按序号做ItemText         lstImageItem.add(map);        }        //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应        SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释                                              lstImageItem,//数据来源                                               R.layout.night_item,//night_item的XML实现                                                                                            //动态数组与ImageItem对应的子项                                                      new String[] {"ItemImage","ItemText"},                                                                                             //ImageItem的XML文件里面的一个ImageView,两个TextView ID                                              new int[] {R.id.ItemImage,R.id.ItemText});        //添加并且显示        gridview.setAdapter(saImageItems);        //添加消息处理        gridview.setOnItemClickListener(new ItemClickListener());    }        //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件    class  ItemClickListener implements OnItemClickListener    {  public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened                               View arg1,//The view within the AdapterView that was clicked                              int arg2,//The position of the view in the adapter                              long arg3//The row id of the item that was clicked                              ) {   //在本例中arg2=arg3   HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);   //显示所选Item的ItemText   setTitle((String)item.get("ItemText"));  }         }

           
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android入门第八篇之GridView 九宫图 的相关文章

  • Linux命令:pidof

    pidof命令 查询某个指定服务进程的PID值 每个进程的进程号码 PID 是唯一的 因此可以通过PID来区分不同的进程 执行以下命令查询sudo服务的PID root LAPTOP HJMUH10E home simon pidof su
  • JVM-从熟悉到精通

    JVM 机器语言 一个指令由操作码和操作数组成 方法调用等于一个压栈的过程 栈有 BP寄存器 和 SP寄存器来占用空间 BP gt Base Point 栈基址 栈底 SP gt Stack Point 栈顶 字节序用于规定数据在内存单元如
  • CUDA并行算法系列之FFT快速卷积

    CUDA并行算法系列之FFT快速卷积 卷积定义 在维基百科上 卷积定义为 离散卷积定义为 0 1 2 3 和 0 1 2 的卷积例子如下图所示 Python实现 直接卷积 根据离散卷积的定义 用Python实现 def conv a b N
  • RNN, LSTM, GRU模型结构详解(看这一篇就够了)

    RNN和LSTM讲解超详细的文章 https zhuanlan zhihu com p 32085405 GRU超详解文章 https zhuanlan zhihu com p 32481747
  • jupyter notebook 导出 markdown文件格式

    jupyter notebook 导出 markdown文件格式 原本jupyter notebook 里面自带的可以选择导出为markdown格式 但是下载之后文件总是打不开 只能另寻他法 方法 第一步 安装nbconvert pip i
  • C++类和对象的基本概念

    目录 1 c和c 中struct的区别 2 类的封装 3 类的访问权限 1 c和c 中struct的区别 c语言中结构体中不能存放函数 也就是数据 属性 和行为 方 法 是分离的 c 中结构体中是可以存放函数的 也就是数据 属性 和行为 方
  • Linux文件编程常用函数详解——fcntl()函数

    fcntl 函数 include
  • 智能指针(二):shared_ptr实现原理

    前面讲到auto ptr有个很大的缺陷就是所有权的转移 就是一个对象的内存块只能被一个智能指针对象所拥有 但我们有些时候希望共用那个内存块 于是C 11标准中有了shared ptr这样的智能指针 顾名思义 有个shared表明共享嘛 所以
  • windows升级node版本

    当本地的node版本过低的时候 这就需要升级更高版本来满足开发需求 本文详细教大家如何升级自己需要的node版本 1 官网 下载 Node js 中文网 下载找到需要升级的node版本 下载也默认只有长期支持版本和最新版本 如果满足需求 直
  • 2020 MCM Weekend 2 Problem C,2020美赛C题——完整版题目

    文章目录 Problem C A Wealth of Data Problem Requirements Glossary Data Set Definitions Problem C A Wealth of Data Problem In
  • 测试开发岗需要学习什么样的技能才能满足需求?也许通过阅读各个互联网大厂的JD你会更加清楚

    目录 前言 各大互联网厂关于测试开发的要求 实习 测试开发实习生 测试中心 B站 测试开发实习生 商业技术部 B站 测试开发实习生 直播 B站 测试开发工程师 实习 阿里 游戏测试开发工程师 实习 阿里 测试开发工程师 教育业务 实习 字节
  • 时间序列之指数平滑法(Exponential Smoothing)

    统计中 预测方法除了利用多个影响因素建立回归模型来做预测外 在影响因素复杂 或者是没办法得到相关影响因素的数据信息时 回归模型就无能为力了 如果数据是时间序列上的值 在时间上可能呈现一定的稳态或者规律 利用过去时间区间的值来预测未来值 指数
  • 关于Win2008系统DNS服务器安装配置操作教程

    DNS是因特网的一项核心服务 它作为可以将域名和IP地址相互映射的一个分布式数据库 能够使人更方便的访问互联网 而不用去记住能够被机器直接读取的IP 中文全称 网络协议 地址数串 在win2008系统中要成功安装DNS服务器才能够正常的连接
  • Python工程师的发展前景如何?薪资高吗?5点给你分析齐全

    根据网上的人爆料 2020 互联网大厂校招硕士生的薪资情况 和美团今年的校招信息发布 也是引起一波热潮 许多人看到这些薪资都会感叹一声 那真正处于技术岗位的人员又是另一种看法 同时也激起了许多人想学编程的想法 而目前较为火热的Python也
  • 可视化翻转教学python

    目录 第1关 绘制折线图 第2关 绘制正弦曲线 第3关 绘制指定线型 颜色和标记的正弦曲线 第4关 定义绘制正余弦函数曲线的函数 第5关 绘制坐标轴并设置范围 第1关 绘制折线图 显示绘制结果 plt show 用于显示绘制的结果 无参数
  • 华为OD机试 - 报数问题(Java)

    题目描述 有n个人围成一圈 顺序排号为1 n 从第一个人开始报数 从1到3报数 凡报到3的人退出圈子 问最后留下的是原来第几号的那位 输入描述 输入人数n n lt 1000 输出描述 输出最后留下的是原来第几号 用例 输入 2 输出 2
  • PHP 密码长度至少为8,且必须包含大小写字母/数字/符号任意三者组合

    密码长度至少为8 且必须包含大小写字母 数字 符号任意三者组合 public function rexCheckPassword pwd 12345678aaA 8 20 位 字母 数字 字符 密码必须包含大小写字母 数字 符号任意两者组合
  • 程序员必知的设计模式七大原则

    文章目录 设计模式的目的 1 单一职责原则 1 1 单一职责原则注意事项和细节 2 接口隔离原则 2 1 接口隔离原则例子 3 依赖倒转原则 3 1 什么是依赖 3 2 依赖关系传递的三种方式 1 接口传递 依赖 2 构造方法传递 组合 3
  • 用U深度启动U盘清除系统登入密码

    先添加一块硬盘 修改启动顺序 选择windows密码破解工具 选择选项1 出现了许多硬盘 一个一个去试SAM在那个硬盘 最后发现在硬盘2 出现以下界面 选择第一个用户 按y键保存并退出 在按esc键一直退到以下界面 输入r退出关闭计算机 把
  • Pytorch中常见transform的使用

    本次实验练习了pytorch中数据的读取 Dataset类的使用 以及transform模块的使用 一 Pytorch简介 PyTorch是一个开源的Python机器学习库 基于Torch 用于自然语言处理等应用程序 2017年1月 由Fa

随机推荐