android 最新 九宫格,Android布局案例之人人android九宫格
人人android是人人网推出的一款优秀的手机应用软件,我们在使用的时候发现他的首页布局是九宫格模式的,让人觉得很别致,因为现在很多的 android软件很少使用这种布局模式,人人android使用的很成功,使人觉得简洁大方美观,下面我们来看看人人android的布局
其实这种布局是使用了一种叫“GridView”的表格布局,下面我来给大家讲一下:
首先,请大家理解一下“迭代显示”这个概念,这个好比布局嵌套,我们在一个大布局里面重复的放入一些布局相同的小布局,那些重复的部分是由图片和文字组成的小控件,图片在上方,文字在下方,之后我们只需要把这些小控件迭代进入主容器里即可。
我们来看看实际做出来的效果图:
我们来看看主容器的布局(GridView)
main.xml
android:id="@+id/GridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center">
介绍一下里面的某些属性:
android:numColumns=”auto_fit” ,GridView的列数设置为自动
android:columnWidth=”90dp”,每列的宽度,也就是Item的宽度
android:stretchMode=”columnWidth”,缩放与列宽大小同步
在这里需要关注的属性是columnWidth,这里指定了列的宽度,一个列对象,对应一个 “可重复的子项”,这个子项就是我们 的图片项和图片下方文字显示的部分。如果不指定这个宽度的话,默认是每行(展示的行,界面)仅仅只显示一个 “可重复的子项”,而当指定了宽度时,本文指定为90dp,如果每行实际行尺寸大于90,他就会继续将下一个的“可重复的子项”,放置在本行。于是就呈现一种 一行显示多个子项的情况。numColumns属性,指定一个自动填充的值,指示了自动填充行。
接下来我们需要再创建一个XML布局文件,这里我们写需要“被迭代”的子项(RelativeLayout)
不熟悉RelativeLayout布局的请看我写的上一篇博客:android布局基础及范例(一)
item.xml
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
android:layout_width="wrap_content"
android:id="@+id/ItemImage"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ItemImage"
android:id="@+id/ItemText"
android:layout_centerHorizontal="true"
/>
这里使用了一个相对布局,在TextView 里使用属性android:layout_below=”@+id/ItemImage”指示了文本在图片的下方。
最后一步,我们需要把这些东西拼在一起,并且实现
这里我们采用了java中的数据结构:HashMap,用法这里不多说了,可以自行百度。
然后构建ArrayList作为数据源,再构建SimpleAdapter 作为数据适配器,为gridView指定适配器对象。
以下是java代码:
layout_gridview.java
packagejiabin.activity;
importjava.util.ArrayList;
importjava.util.HashMap;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemClickListener;
importandroid.widget.GridView;
importandroid.widget.SimpleAdapter;
importandroid.widget.Toast;
publicclasslayout_gridviewextendsActivity {
/** Called when the activity is first created. */
@Override
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.GridView);
ArrayList> meumList =newArrayList>();
for(inti =1;i <10;i++)
{
HashMap map =newHashMap();
map.put("ItemImage", R.drawable.i1);
map.put("ItemText",""+i);
meumList.add(map);
}
SimpleAdapter saItem =newSimpleAdapter(this,
meumList,//数据源
R.layout.item,//xml实现
newString[]{"ItemImage","ItemText"},//对应map的Key
newint[]{R.id.ItemImage,R.id.ItemText}); //对应R的Id
//添加Item到网格中
gridview.setAdapter(saItem);
//添加点击事件
gridview.setOnItemClickListener(
newOnItemClickListener()
{
publicvoidonItemClick(AdapterView> arg0, View arg1,intarg2,longarg3)
{
intindex=arg2+1;//id是从0开始的,所以需要+1
Toast.makeText(getApplicationContext(),"你按下了选项:"+index,0).show();
//Toast用于向用户显示一些帮助/提示
}
}
);
}
}
点击事件响应使用Toast,我们可以用此方法显示用户点击的效果和触发动作,上面代码使用了Toast默认效果,
我们来看看效果图:
这种布局是不是很拉风呢,希望本文所述对大家学习Android软件编程有所帮助。
android 最新 九宫格,Android布局案例之人人android九宫格相关推荐
- MotionLayout,一篇文章带你了解Android最新的动画布局
/ 今日科技快讯 / 近日,国家市场监管总局网站发布对阿里.腾讯共11张行政处罚决定书.其中,市场监管总局发布对腾讯行政处罚决定书共九张,均为相关股权收购或设立合营企业构成未依法申报违法实施经 ...
- 高仿人人android梦想版终极源码发送,人人Android客户端梦想版发布
人人网梦想版for Android 5.0.1下载(人人网Android客户端) 人人网今天发布Android客户端"梦想版",新版更新的"私信"功能与微信等聊 ...
- 高仿人人android梦想版终极源码发送,人人Android客户端梦想版:一秒钟变微信
人人网今天发布Android客户端"梦想版",新版更新的"私信"功能与微信等聊天工具同出一辙,还可以发送语音和大幅表情.其他界面也进行了大幅更新. 以下为人人网 ...
- android 最新sdk版本,详解如何在Android studio中更新sdk版本和build-tools版本
一.首先看下Android开发用到的sdk目录: build-tools 保存着一些Android平台相关通用工具,比如adb.和aapt.aidl.dx等文件. aapt即Android Asset ...
- android悬浮窗代码布局,三行代码实现Android应用内悬浮窗,无需一切权限,适配所有ROM和厂商...
悬浮窗实现传统方案 对于传统悬浮窗和一些古老的"黑科技"悬浮窗的实现,想必已经有很多成熟的案例了,实现策略基本为以下两种:TYPE_SYSTEM_ALERT类型mWindowMan ...
- 2018 android最新版本,2008年至2018年,Android系统10年进化史
截止到2018年,安卓系统市场占有率高达85.9%,除了苹果手机之外,目前几乎所有的智能机都采用安卓系统,不得不说,安卓系统的确是一款非常成功且伟大的系统.接下来本文会带大家回顾安卓从1.0到9.0( ...
- imx6 android 最新,IMX6开发板创建第一个Android应用程序helloworld
运行行 AndroidStudio 程序.如下图,选择创建一个新的 androidstudio 工程(基于 迅为-i.mx6开发板) 应用名称改为"helloworld",项目保存 ...
- android中上拉下滑布局,3年以上勿进!最简单的Android自定义ListView下拉刷新与上拉加载,代码直接拿去用~...
本文主要针对开发新手,手写实现一个最简单Android自定义listview下拉刷新和上拉加载demo. 不喜可喷,欢迎大佬留言指点. 效果图 一:编写需要在ListView中增加头加载的布局文件,与 ...
- Android中的网格布局
文章目录 1 Android中的网格布局 1 Android中的网格布局 重要属性: android:rowCount(行数量) android:columnCount (列数量) android:l ...
- Android中的表格布局
文章目录 1 Android中的表格布局 1 Android中的表格布局 重要属性: android:stretchColumns android:shrinkColumns android:coll ...
最新文章
- VS2005 / windows sdk7.1配置
- eeglab中文教程系列(9)-绘制ERP图像
- python 并行计算 multiprocessing、multiprocess模块 简介
- 封装自己的控件库:iPhone静态库的应用
- 计算器软件----表达式求值
- 海量数据的分库分表技术演进,最佳实践
- Windows Phone 7 - 页面间传值 来源-http://blog.csdn.net/dncts/article/details/6160067
- CAP-微服务间通信实践
- linux的驱动开发——下载地址
- 一个“程序员的自我修养”是什么?
- 一流设计导航|16map|效率导航最全设计类软件!速度收藏!!
- WinRAR v5.40 官网无广告弹窗正式版
- 连接打印机错误0x000000bcb解决方法
- 2019年ACM大赛:北大清华无缘前十,莫斯科大学第一
- 怎么下载Windows图片和传真查看器
- LDN的蓝牙双模键盘帮助文档
- 关于MOSFET驱动电阻的选择
- 院校-美国:美国国立卫生研究院(NIH)
- SpringBoot实现邮箱发送验证码
- 发布一个从迅雷下载字幕的小工具
热门文章
- FPGA接口实现----增量式编码器
- 中国移动通信互联网短信网关接口协议CMPP2.0(普通文本短信、二进制数据短信)
- 单车---------Eason
- 保密容量【Secrecy Capacity】
- Axure设计原型如何如何插入视频
- ※前端面试--知识总结
- Tomcat 如何生成SSL安全证书(拜读、学习、记录) and 如何用OpenSSl生成服务端证书 other 简述cer和crt后缀的证书的区别
- python|教你用代码画“社会人”
- 炼数成金 课件整理数据分析与R语言 第1周
- 如何在服务器上运行Recorder.js,录音上传到服务器使用jwagener的recorder.js和recorder.swf...