Android新手入门2016(10)--GridView

本文来自肥宝传说之路,引用必须注明出处!

GridView跟ListView一样是多控件布局。实现九宫图是最方便的。

还是先看看图,没图说个鸡鸡是不是


如上图,是一种应用方式,在每个格子里面,放入应用图标,和显示应用的名字在下方。

下面先看看布局文件:

activity_hello_world.xml 

<?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"  
/>  
现在说说一些新的属性: 

这里dp相关知识可以看看Android长度相关

 android:numColumns="auto_fit"   设置为自动适应屏幕宽度,上图只能摆放3个
 android:verticalSpacing="10dp"   两行之间的间距是10像素
 android:horizontalSpacing="10dp"   两列之间的间距为10像素
 android:columnWidth="90dp"   每一列的宽度
 android:stretchMode="columnWidth"  缩放与列宽的大小同步
 android:gravity="center"  空间显示的位置是中间

我们再来看看代码:

HelloWorldActivity.java

package com.fable.helloworld;import android.app.Activity;  
import android.os.Bundle;   
import android.widget.GridView;
import android.widget.SimpleAdapter; 
import java.util.*;public class HelloWorldActivity extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);setContentView(R.layout.activity_hello_world);  //设置主布局文件GridView gridview = (GridView) findViewById(R.id.gridview);  //创造数据来源ArrayList<HashMap<String, Object>> images = new ArrayList<HashMap<String, Object>>();  for(int i=1;i<10;i++)  {  HashMap<String, Object> map = new HashMap<String, Object>();  map.put("ItemImage", R.drawable.ic_launcher);//添加图像资源的ID,标识符,值map.put("ItemText", "应用"+String.valueOf(i));//按序号做ItemText,标识符,值  images.add(map);  }  //把数据传入适配器,转换成布局需要的数据SimpleAdapter simpleAdapter = new SimpleAdapter(this, //上下文为当前Activityimages,//数据来源   R.layout.my_list_item,//每一项的布局的XML实现    new String[] {"ItemImage","ItemText"},//动态数组与ImageItem对应的子项 new int[] {R.id.ItemImage,R.id.ItemText});  //ImageItem的XML文件里面的一个ImageView,两个TextView ID  //添加并且显示  gridview.setAdapter(simpleAdapter);   }   }
可以这里使用了SimpleAdapter,用法跟ListView一样。对于ListView中SimpleAdapter的用法,可以看这里。

其实过程是很简单,就是把源数据,转换成适配器的数据,然后把适配器设置到gridView就行了。

跟ListView一样,每一项的布局内也是要一个布局文件的。

my_list_item.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>  
这里ItemText设置在ItemImage下面,两个都是垂直居中。








转载于:https://www.cnblogs.com/fablegame/p/6430277.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java开发环境搭建详解

Java开发环境搭建详解 http://topic.csdn.net/u/20110829/13/BF4FAA45-3E1A-48A8-BC46-0405B7F862A2.html 一。jdk安装与配置 jdk7于3月份刚刚发布&#xff0c;目前eclipse的最新版本中还没有提供对jdk7的编译支持&#xff0c;所以我们只下载jdk6。 下载地址&#xff1a;http:…

linux查看文件和目录大小(du)

From: http://www.2cto.com/os/201210/160665.html linux查看文件和目录大小(du)起因工作中或者日常使用ubuntu时候&#xff0c;经常会遇到查看当前系统容量的情况&#xff0c;这时候就需要我们使用命令来查询当前目录或者文件的大小了目录的容量&#xff08;du&#xff09;语法…

《云计算核心技术剖析》读书笔记之一

http://book.douban.com/subject/6382788/ 通过2周的时间&#xff0c;阅读完了由吴朱华编著的《云计算核心技术剖析》一书。同时国内由CSDN协办的第四届云计算大会要开幕&#xff0c;我在这里把自己写下这本书的读书笔记。这本书是2011年出版&#xff0c;但是在这本书上对微软的…

第四周仿真作业

经过第四周关于交流电机的学习&#xff0c;我们通过对起调速特性的了解&#xff0c;进行仿真&#xff1a; 控制电机带重物上升&#xff0c;从静止加速到800r/min保持800r/min匀速运动0.5s&#xff0c;减速到静止&#xff0c;保持静止状态0.5s&#xff0c;带重物下降&#xff0c…

GVim中以十六进制方式打开文件

在windows下&#xff0c;有时我们想用GVim以十六进制形式来打开一个文件&#xff0c;下面就是不错的方法&#xff0c;将它作为一个右键菜单方式加入&#xff1a; 1. 将"GVim Hex"加入到右键菜单, 将以下内容添加到一个xxx.reg文件&#xff0c;再双击运行一次即可&am…

Cisco Nexus 1000V

Cisco Nexus 1000V包含VEM和VSM两部分&#xff0c;其中VEM运行在ESXi服务器上取代VMware原有的虚拟交换机&#xff0c;VSM是一个单独运行的虚拟机&#xff0c;提供CLI接口&#xff0c;用于管理和配置整个虚拟交换机。 Cisco Nexus 1000V的具体安装步骤如下&#xff1a; 安装环境…

HTML5背景音乐的暂停与播放

HTML代码&#xff1a; <audio id"myaudio" loop"loop" preload"auto" autoplay"autoplay"> <source src"music/纯音乐%20-%20在那遥远的地方%20-%20纯音乐版.mp3" type"audio/ogg&qu…

React开发(277):ant design time刚进入页面时间重置

activityTimeStamp.length 0? null: [moment(activityTimeStamp[0]),moment(activityTimeStamp[1])],

视频播放的基本原理

From: http://blog.csdn.net/bisword/article/details/3865000 VLC是一个功能强大的玩意&#xff0c;能做很多有意思的事情。 最简单的&#xff0c;从界面打开一个文件播放&#xff0c;也可以在命令行下使用&#xff0c;如 C:/Program Files/VideoLAN/VLC>vlc.exe test.ts 获…

React开发(278):ant design message res保证正确信息提示

callback: (res) > {console.log(res, res);if (res true) {message.success(操作成功);this.props.dispatch({type: lecturer/updateState,payload: { selectedRowKeys: [] },});this.sendSearchRequest();} else {message.error(res.returnMsg);}},

高性能的智能日志

【编者按】本文作者是 Archanaa Panda &#xff0c;从 2000 以来一直在软件开发&#xff08;构架、设计和编程&#xff09;团队担任 Java / JavaEE 构架师&#xff0c;目前立志于做一个与时俱进的独立的顾问架构师。在本篇文章中&#xff0c;作者通过多个方面为生产环节的日志提…

Android, WindowsPhone7, IOS ,vc2010平台40多套图片滤镜开源

历经三个多月开发&#xff0c;终于完成了这三个库的编码工作。用到的开发语言主要有使用了C&#xff08;含部分Object-c&#xff09;,JAVA,C#。经过检测&#xff0c;目前已正式投入到生产环境中。 为了实现三种语言一种命名方式&#xff0c;我采用了相同的类名&#xff0c;接口…

React开发(279):ant design 改变按钮状态判断方式

list: (text, row) > {let arr [];if (row.status SHSTATUS) {arr.push({name: 审核,onClick: () > {this.handleRever(row);},});}if (row.status SHNOSTATUS || row.status CANCELSTATUS) {arr.push({name: 删除,isPopConfirm: true,onClick: () > {this.handle…

Ubuntu server下“初始化月份字符串出错”的解决

From: http://blog.163.com/squall_smile/blog/static/6034984020132143819854/ Ubuntu 12.04.1 LTS下&#xff0c;用ls -ltr 命令显示文件包括日期时一直提示“初始化月份字符串出错”&#xff0c;也未在意。最近写个程序会产生临时文件&#xff0c;按日期清理&#xff0c;但清…

找到一个比较熟悉Go语言的国内博客

2019独角兽企业重金招聘Python工程师标准>>> 他写了一些不错的Go安装和使用的文章&#xff0c;还参与了一本Go语言书籍的翻译工作&#xff0c;对Go语言相当熟悉。博客地址&#xff1a; http://www.mikespook.com/category/golang-2/ 转载于:https://my.oschina.net/…

百度北京一面2016-3-18

来5分钟的自我介绍详细讲项目&#xff08;提示要把实验结果详细写到简历里面&#xff09;svm用到了几维&#xff0c;维数比较少为什么用svm讲一下svm核函数java多线程&#xff08;不会&#xff09;python中sort和sorted分别讲一下list和dictlist有什么方法查询数据库里每门功课…

React开发(280):moment处理日期

<div style{{ display: flex }}><span className{style.infoSpan}><span>联系地址&#xff1a;</span><span>{basicLecturerEntity.address}</span></span><span className{style.infoSpan}><span>年龄&#xff1a;<…

Hi3518编译器安装

1. 安装 压缩包名称为&#xff1a;Hi3518_SDK_V1.0.6.0_B030.tgz 在终端下执行以下命令(以root身份): tar -zxvf Hi3518_SDK_V1.0.6.0_B030.tgz // 解压cd Hi3518_SDK_V1.0.6.0_B030 . sdk.unpack // 解压cd osdrv/toolchain/arm-hisiv100nptl-linux // 选择一个编译…

Windows更新补丁下载、批量安装的几种方法

Windows更新补丁下载、批量安装的几种方法 对于广大电脑爱好者而言&#xff0c;打补丁已经是“家常便饭”。每次重装系统后&#xff0c;之前系统更新过的补丁也随之毁于一旦&#xff0c;不得不再次连接到微软的网站&#xff0c;将系统“缝缝补 补”一翻&#xff0c;即使你的网速…