人人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九宫格相关推荐

  1. MotionLayout,一篇文章带你了解Android最新的动画布局

    /   今日科技快讯   / 近日,国家市场监管总局网站发布对阿里.腾讯共11张行政处罚决定书.其中,市场监管总局发布对腾讯行政处罚决定书共九张,均为相关股权收购或设立合营企业构成未依法申报违法实施经 ...

  2. 高仿人人android梦想版终极源码发送,人人Android客户端梦想版发布

    人人网梦想版for Android 5.0.1下载(人人网Android客户端) 人人网今天发布Android客户端"梦想版",新版更新的"私信"功能与微信等聊 ...

  3. 高仿人人android梦想版终极源码发送,人人Android客户端梦想版:一秒钟变微信

    人人网今天发布Android客户端"梦想版",新版更新的"私信"功能与微信等聊天工具同出一辙,还可以发送语音和大幅表情.其他界面也进行了大幅更新. 以下为人人网 ...

  4. android 最新sdk版本,详解如何在Android studio中更新sdk版本和build-tools版本

    一.首先看下Android开发用到的sdk目录: build-tools 保存着一些Android平台相关通用工具,比如adb.和aapt.aidl.dx等文件. aapt即Android Asset ...

  5. android悬浮窗代码布局,三行代码实现Android应用内悬浮窗,无需一切权限,适配所有ROM和厂商...

    悬浮窗实现传统方案 对于传统悬浮窗和一些古老的"黑科技"悬浮窗的实现,想必已经有很多成熟的案例了,实现策略基本为以下两种:TYPE_SYSTEM_ALERT类型mWindowMan ...

  6. 2018 android最新版本,2008年至2018年,Android系统10年进化史

    截止到2018年,安卓系统市场占有率高达85.9%,除了苹果手机之外,目前几乎所有的智能机都采用安卓系统,不得不说,安卓系统的确是一款非常成功且伟大的系统.接下来本文会带大家回顾安卓从1.0到9.0( ...

  7. imx6 android 最新,IMX6开发板创建第一个Android应用程序helloworld

    运行行 AndroidStudio 程序.如下图,选择创建一个新的 androidstudio 工程(基于 迅为-i.mx6开发板) 应用名称改为"helloworld",项目保存 ...

  8. android中上拉下滑布局,3年以上勿进!最简单的Android自定义ListView下拉刷新与上拉加载,代码直接拿去用~...

    本文主要针对开发新手,手写实现一个最简单Android自定义listview下拉刷新和上拉加载demo. 不喜可喷,欢迎大佬留言指点. 效果图 一:编写需要在ListView中增加头加载的布局文件,与 ...

  9. Android中的网格布局

    文章目录 1 Android中的网格布局 1 Android中的网格布局 重要属性: android:rowCount(行数量) android:columnCount (列数量) android:l ...

  10. Android中的表格布局

    文章目录 1 Android中的表格布局 1 Android中的表格布局 重要属性: android:stretchColumns android:shrinkColumns android:coll ...

最新文章

  1. VS2005 / windows sdk7.1配置
  2. eeglab中文教程系列(9)-绘制ERP图像
  3. python 并行计算 multiprocessing、multiprocess模块 简介
  4. 封装自己的控件库:iPhone静态库的应用
  5. 计算器软件----表达式求值
  6. 海量数据的分库分表技术演进,最佳实践
  7. Windows Phone 7 - 页面间传值 来源-http://blog.csdn.net/dncts/article/details/6160067
  8. CAP-微服务间通信实践
  9. linux的驱动开发——下载地址
  10. 一个“程序员的自我修养”是什么?
  11. 一流设计导航|16map|效率导航最全设计类软件!速度收藏!!
  12. WinRAR v5.40 官网无广告弹窗正式版
  13. 连接打印机错误0x000000bcb解决方法
  14. 2019年ACM大赛:北大清华无缘前十,莫斯科大学第一
  15. 怎么下载Windows图片和传真查看器
  16. LDN的蓝牙双模键盘帮助文档
  17. 关于MOSFET驱动电阻的选择
  18. 院校-美国:美国国立卫生研究院(NIH)
  19. SpringBoot实现邮箱发送验证码
  20. 发布一个从迅雷下载字幕的小工具

热门文章

  1. FPGA接口实现----增量式编码器
  2. 中国移动通信互联网短信网关接口协议CMPP2.0(普通文本短信、二进制数据短信)
  3. 单车---------Eason
  4. 保密容量【Secrecy Capacity】
  5. Axure设计原型如何如何插入视频
  6. ※前端面试--知识总结
  7. Tomcat 如何生成SSL安全证书(拜读、学习、记录) and 如何用OpenSSl生成服务端证书 other 简述cer和crt后缀的证书的区别
  8. python|教你用代码画“社会人”
  9. 炼数成金 课件整理数据分析与R语言 第1周
  10. 如何在服务器上运行Recorder.js,录音上传到服务器使用jwagener的recorder.js和recorder.swf...