1、xml代码:

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:background="@drawable/yellow"

>

android:layout_width="100sp"

android:layout_height="100sp"

android:layout_gravity="center_vertical"

android:background="@drawable/a">

android:id="@+id/gridview"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:numcolumns="3"

android:verticalspacing="30dip"

android:horizontalspacing="10dip"

android:columnwidth="90dip"

android:stretchmode="columnwidth"

android:gravity="center"

android:listselector="@drawable/c"

>

其中android:numcolumns="3"  代表九宫格的列数  auto_fit时为自动

2、实现代码

public class mainactivity extends activity {

/** called when the activity is first created. */

@override

protected void oncreate(bundle savedinstancestate) {

// todo auto-generated method stub

super.oncreate(savedinstancestate);

// 设置屏幕没有标题

this.requestwindowfeature(window.feature_no_title);

// 去掉标题栏

this.getwindow().setflags(windowmanager.layoutparams.flag_fullscreen,

windowmanager.layoutparams.flag_fullscreen);

setcontentview(r.layout.activity_main);

gridview gridview = (gridview) findviewbyid(r.id.gridview);

// 创建一个数组列表对象

arraylist> lstimageitem = new arraylist>();

/**

* 为每个格子添加内容

*/

for (int i = 1; i < 10; i++) {

hashmap map = new hashmap();// 建立hashmap对象

if (i == 1) {

map.put("itemimage", r.drawable.g11);

map.put("itemtext", getresources()

.getstring(r.string.gridview1));

}

if (i == 2) {

map.put("itemimage", r.drawable.g12);

map.put("itemtext", getresources()

.getstring(r.string.gridview2));

}

if (i == 3) {

map.put("itemimage", r.drawable.g13);

map.put("itemtext", getresources()

.getstring(r.string.gridview3));

}

if (i == 4) {

map.put("itemimage", r.drawable.g14);

map.put("itemtext", getresources()

.getstring(r.string.gridview4));

}

if (i == 5) {

map.put("itemimage", r.drawable.g15);

map.put("itemtext", getresources()

.getstring(r.string.gridview5));

}

if (i == 6) {

map.put("itemimage", r.drawable.g16);

map.put("itemtext", getresources()

.getstring(r.string.gridview6));

}

if (i == 7) {

map.put("itemimage", r.drawable.g17);

map.put("itemtext", getresources()

.getstring(r.string.gridview7));

}

if (i == 8) {

map.put("itemimage", r.drawable.g18);

map.put("itemtext", getresources()

.getstring(r.string.gridview8));

}

if (i == 9) {

map.put("itemimage", r.drawable.g19);

map.put("itemtext", getresources()

.getstring(r.string.gridview9));

}

lstimageitem.add(map);

}

/**

* 为gridview建立simpleadapter适配器

*/

// simpleadapter()中的五个参数分别是:第一个context,第二个数据资源,第三个每一个子项的布局文件,第四个每一个子项中的key数组

// 第五个每一个子项中的value数组

simpleadapter saimageitems = new simpleadapter(this, lstimageitem,

r.layout.grid_item, new string[] { "itemimage", "itemtext" },

new int[] { r.id.itemimage, r.id.itemtext });

gridview.setadapter(saimageitems);// 添加适配器

gridview.setonitemclicklistener(new itemclicklistener());// 为每一个子项设置监听

}

class itemclicklistener implements onitemclicklistener {

@suppresswarnings("unchecked")

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

) {

hashmap item = (hashmap) arg0

.getitematposition(arg2);

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview1))) {

toast.maketext(mainactivity.this, r.string.gridview1,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview2))) {

toast.maketext(mainactivity.this, r.string.gridview2,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview3))) {

toast.maketext(mainactivity.this, r.string.gridview3,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview4))) {

toast.maketext(mainactivity.this, r.string.gridview4,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview5))) {

toast.maketext(mainactivity.this, r.string.gridview5,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview6))) {

toast.maketext(mainactivity.this, r.string.gridview6,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview7))) {

toast.maketext(mainactivity.this, r.string.gridview7,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview8))) {

toast.maketext(mainactivity.this, r.string.gridview8,

toast.length_long).show();

}

if (item.get("itemtext").equals(

getresources().getstring(r.string.gridview9))) {

toast.maketext(mainactivity.this, r.string.gridview9,

toast.length_long).show();

}

}

}

}

3、实现效果如图所示

android 九宫格封装,Android 九宫格的实现方法相关推荐

  1. android 九宫格封装,Android 九宫格布局

    演示 image 需求 满足0-9个图的适配 图数量 演示 1 image 2 image 3 image 4 image 5 image 6 image 7 image 8 image 9 imag ...

  2. android vitamio封装,Android视频框架Vitamio构建自己的通用播放器

    Vitamio是Android和iOS平台上的全方位多媒体开发框架,完全支持硬件解码和GPU渲染. Vitamio功能强大手机上的万能播放器,可以平滑播放720P或1080P HD MKV,FLV手机 ...

  3. android 九宫格封装,Android 实现九宫格、点击图片放大全屏浏览等

    live_icon.jpg 1370473-587d9058f76372fb.gif 说说我的实现思路: 逐渐掌握了Android开发套路,是时候自己去封装一些东西了.网上看了一些例子,感觉不是我想要 ...

  4. android动画封装,Android属性动画封装,快速构建动画

    Android实现动画效果的方式主要有帧动画.补间动画.属性动画.关于安桌动画的基础知识可以查看这篇文章Android属性动画完全解析 这里我要讲的是如何快速构建出一个动画效果,如下图: 如果我们用属 ...

  5. android动画封装,Android开场动画类完整实现代码

    本文所述实例为在android中开起开场动画类,已封装好,进行android开发的朋友可使用.在这个类中,你可以:设置开场动画的图片资源.返回下一个要启动的Activity.显示开场动画.执行耗时的操 ...

  6. android 多线程封装,Android线程池封装库

    目录介绍 1.遇到的问题和需求 1.1 遇到的问题有哪些 1.2 遇到的需求 1.3 多线程通过实现Runnable弊端 1.4 为什么要用线程池 2.封装库具有的功能 2.1 常用的功能 3.封装库 ...

  7. android websocket封装,Android WebSocket 方案选型OkHttp

    目前Android WebSocket 框架 主要包括: SocketIO Java-WebSocket OkHttp WebSocket 一开始我首选的是采用SocketIO方案,因为考虑该方案封装 ...

  8. android适配器封装,Android万能适配器(一)封装ViewHolder

    封装 ViewHolder 简单分析ViewHolder封装.ViewHolder内部正常是保存每个页面控件的索引,那么封装时候我们可以使用容器把每个Item布局中的所有控件存储到这个容器里面,每次使 ...

  9. android 多线程封装,Android 线程池的封装

    GlobalThreadPools.java: /** * 全局使用的线程池 */ public class GlobalThreadPools { private static String TAG ...

最新文章

  1. jquery通过val()取不到textarea中的值
  2. 在golang编程中总结的基础语法及常见的问题
  3. 【♻️markdown之一次编写,到处使用♻️】markdown文件转word
  4. pat天梯赛L1-052. 2018我们要赢
  5. 基于pygame的贪吃蛇游戏
  6. bootstrap-响应式导航条
  7. 7z制作自解压安装包
  8. 程序一启动检查网络,如果没有网络就退出程序
  9. python web前端开发面试_面试前端,听听别人怎么说!
  10. 弹载计算机的上市公司,基于无线通信的弹载计算机系统BIT设计
  11. Arcgis Javascript中geometryEngine报错’hq‘of undefined的解决方法
  12. Linux中tty、pty、pts的概念区别
  13. 页面转发后文本显示???_无代码软件开发中超文本显示设计
  14. “英伦配”收视牛过本山,网管软件如何配奇兵
  15. 再战图形,一图一世界
  16. 三款好用的记账软件推荐
  17. 虎虎生威—新年版本(鼠标超人、烟花、浮动会闪的星星以及闪避值拉满的老虎)
  18. 计算机磁盘图标变了怎么改过来,本地磁盘图标变了怎么办 本地磁盘图标变解决方法...
  19. Redis设置过期时间为当月月底-----自动计算
  20. 交易猫鲨鱼系统源码搭建

热门文章

  1. Git学习笔记:分支管理(1)
  2. 牛客网题目——不用四则运算符号,计算两个数字的和
  3. [云炬创业基础笔记] 第四章测试15
  4. ustc小道消息20211223
  5. [云炬python3玩转机器学习]sklearn中的Scaler
  6. 科大星云诗社动态20210525
  7. 机器学习中的MLE、MAP和贝叶斯估计
  8. MatConvnet工具箱文档翻译理解(2)
  9. Windows下配置环境变量和需不需要重启?
  10. c++中宏定义的妙用