android 九宫格封装,Android 九宫格的实现方法
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 九宫格的实现方法相关推荐
- android 九宫格封装,Android 九宫格布局
演示 image 需求 满足0-9个图的适配 图数量 演示 1 image 2 image 3 image 4 image 5 image 6 image 7 image 8 image 9 imag ...
- android vitamio封装,Android视频框架Vitamio构建自己的通用播放器
Vitamio是Android和iOS平台上的全方位多媒体开发框架,完全支持硬件解码和GPU渲染. Vitamio功能强大手机上的万能播放器,可以平滑播放720P或1080P HD MKV,FLV手机 ...
- android 九宫格封装,Android 实现九宫格、点击图片放大全屏浏览等
live_icon.jpg 1370473-587d9058f76372fb.gif 说说我的实现思路: 逐渐掌握了Android开发套路,是时候自己去封装一些东西了.网上看了一些例子,感觉不是我想要 ...
- android动画封装,Android属性动画封装,快速构建动画
Android实现动画效果的方式主要有帧动画.补间动画.属性动画.关于安桌动画的基础知识可以查看这篇文章Android属性动画完全解析 这里我要讲的是如何快速构建出一个动画效果,如下图: 如果我们用属 ...
- android动画封装,Android开场动画类完整实现代码
本文所述实例为在android中开起开场动画类,已封装好,进行android开发的朋友可使用.在这个类中,你可以:设置开场动画的图片资源.返回下一个要启动的Activity.显示开场动画.执行耗时的操 ...
- android 多线程封装,Android线程池封装库
目录介绍 1.遇到的问题和需求 1.1 遇到的问题有哪些 1.2 遇到的需求 1.3 多线程通过实现Runnable弊端 1.4 为什么要用线程池 2.封装库具有的功能 2.1 常用的功能 3.封装库 ...
- android websocket封装,Android WebSocket 方案选型OkHttp
目前Android WebSocket 框架 主要包括: SocketIO Java-WebSocket OkHttp WebSocket 一开始我首选的是采用SocketIO方案,因为考虑该方案封装 ...
- android适配器封装,Android万能适配器(一)封装ViewHolder
封装 ViewHolder 简单分析ViewHolder封装.ViewHolder内部正常是保存每个页面控件的索引,那么封装时候我们可以使用容器把每个Item布局中的所有控件存储到这个容器里面,每次使 ...
- android 多线程封装,Android 线程池的封装
GlobalThreadPools.java: /** * 全局使用的线程池 */ public class GlobalThreadPools { private static String TAG ...
最新文章
- jquery通过val()取不到textarea中的值
- 在golang编程中总结的基础语法及常见的问题
- 【♻️markdown之一次编写,到处使用♻️】markdown文件转word
- pat天梯赛L1-052. 2018我们要赢
- 基于pygame的贪吃蛇游戏
- bootstrap-响应式导航条
- 7z制作自解压安装包
- 程序一启动检查网络,如果没有网络就退出程序
- python web前端开发面试_面试前端,听听别人怎么说!
- 弹载计算机的上市公司,基于无线通信的弹载计算机系统BIT设计
- Arcgis Javascript中geometryEngine报错’hq‘of undefined的解决方法
- Linux中tty、pty、pts的概念区别
- 页面转发后文本显示???_无代码软件开发中超文本显示设计
- “英伦配”收视牛过本山,网管软件如何配奇兵
- 再战图形,一图一世界
- 三款好用的记账软件推荐
- 虎虎生威—新年版本(鼠标超人、烟花、浮动会闪的星星以及闪避值拉满的老虎)
- 计算机磁盘图标变了怎么改过来,本地磁盘图标变了怎么办 本地磁盘图标变解决方法...
- Redis设置过期时间为当月月底-----自动计算
- 交易猫鲨鱼系统源码搭建