GridView创建菜单栏
GridView(网格视图)可以用来做九宫图、表格(行列)的视图,因其是网格状的,不用去调整权重,而且单个item可以自定义,因此也可以用来创建菜单栏(图标加文字形式),布局就一个GridView。
<GridView
android:id="@+id/file_gridview_toolbar"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"></GridView>
然后设置列数,背景图片等属性。跟着设置设配器。
/**为GridView配饰菜单资源*/
private void initGridViewMenu(){
mGridViewToolbar = (GridView)findViewById(R.id.file_gridview_toolbar);
//设置选中时候的背景图片
mGridViewToolbar.setSelector(R.drawable.menu_item_selected);
//设置背景图片
mGridViewToolbar.setBackgroundResource(R.drawable.menu_background);
//设置列数
mGridViewToolbar.setNumColumns(6);
//设置居中对齐
mGridViewToolbar.setGravity(Gravity.CENTER);
//设置水平,垂直间距为10
mGridViewToolbar.setVerticalSpacing(10);
mGridViewToolbar.setHorizontalSpacing(10);
//设置适配器
mGridViewToolbar.setAdapter(getMenuAdapter(gridview_menu_title,girdview_menu_image));
}
接着是适配器的定义(用SimpleAdapter):
/**菜单适配器*/
private SimpleAdapter getMenuAdapter(String[] menuNameArray,
int[] imageResourceArray) {
//数组列表用于存放映射表
ArrayList<HashMap<String, Object>> mData = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < menuNameArray.length; i++) {
HashMap<String, Object> mMap = new HashMap<String, Object>();
//将“image”映射成图片资源
mMap.put("image", imageResourceArray[i]);
//将“title”映射成标题
mMap.put("title", menuNameArray[i]);
mData.add(mMap);
}
//新建简单适配器,设置适配器的布局文件,映射关系
SimpleAdapter mAdapter = new SimpleAdapter(this, mData,R.layout.item_menu, new String[] { "image", "title" },new int[] { R.id.item_image, R.id.item_text });
return mAdapter;
}
最后是设置GridView每一个item的监听器。
/**菜单项的监听*/
protected void initMenuListener(){
mGridViewToolbar.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch(arg2){ // 以下为实例代码
//回到根目录
case 0:
menuPosition = 1;
initFileListInfo(mRootPath);
break;
//回到SD卡根目录
case 1:
menuPosition = 2;
initFileListInfo(mSDCard);
break;
//显示搜索对话框
case 2:
searchDilalog();
break;
//创建文件夹
case 3:
createFolder();
break;
//粘贴文件
case 4:
palseFile();
break;
//退出
case 5:
MainActivity.this.finish();
break;
}
}
});
}
GridView创建菜单栏的更多相关文章
- 三、PyQt5不同方法创建菜单栏、工具栏和状态栏
创建菜单栏.工具栏和状态栏可以直接通过代码实现,也可以通过Qt Designer中的属性编辑器等实现.通过两种方法的学习可以加深理解,更好的掌握PyQt5. 一.菜单栏与状态栏 状态栏的设置比较简单, ...
- 微信公众号开发之创建菜单栏代码示例(php)
思路很简单:就是先获取access_token,然后带着一定规则的json数据参数请求创建菜单的接口.废话不多讲,直接上代码. class Wechat { public $APPID="w ...
- wxpython 创建工具栏和菜单栏
下面看一下关于创建工具栏,状态栏和菜单的方法,看下面一个例子: import wx class ToolBarFrame(wx.Frame): def __init__(self,parent,id) ...
- java 24 - 7 GUI之 创建多级菜单窗体
需求: 创建多级菜单 步骤: A:创建窗体对象(并设置属性和布局) B:创建菜单栏 C:创建菜单和子菜单 D:逐步添加菜单(子菜单添加到菜单中,菜单添加到菜单栏中) E:窗体中设置菜单栏(菜单栏并不是 ...
- GridView的常规用法
GridView控件在Asp.net中相当常用,以下是控件的解释,有些是常用的,有些是偶尔用到的,查找.使用.记录,仅此而已.(最后附带DropDownList控件) ASP.NET中GridView ...
- DropDownList和GridView用法
DropDownList和GridView用法 DropDownList控件和GridView控件在Asp.net中相当常用,以下是控件的解释,有些是常用的,有些是偶尔的,查找.使用.记录,仅此而 ...
- Qt之菜单栏工具栏入门
菜单栏基本操作 创建菜单栏 QMenuBar *menuBar = new QMenuBar(this); //1.创建菜单栏 menuBar->setGeometry(,,width(),); ...
- Android 右上角菜单栏
1 创建菜单栏 在res下新建menu文件夹,并且创建righttopmenu.xml righttopmenu.xml: <?xml version="1.0" encod ...
- android GridView 的使用 实现多项选择
今天小研究了一下GridView,目的是为了实现 下面的效果(GridView多项选择): 首先,在布局文件添加GridView ,创建适配器的items... 具体的都在注释里边了,下面是 程序源码 ...
随机推荐
- Grafana分析Nginx日志
配置Groub by -Terms时报错,提示需要设置fielddata=true,报错内容大概如下: "Fielddata is disabled on text fields by de ...
- linux 3.10的list_del
最近看到一个page的数据比较奇怪: crash> page ffffea002c239c58 struct page { flags = , _count = { counter = 34-- ...
- Mybatis高级应用-2
文章内容简介 1.回顾 2.Mybatis配置文件解析 3.Mybatis映射文件解析 ResultMap标签使用 自定义返回值处理(Map) 关联映射 主键映射 一.回顾 Mybatis是ORM(o ...
- 转: jquery.qrcode.js生成二维码插件&转成图片格式
原文地址: https://blog.csdn.net/u011127019/article/details/51226104 1.qrcode其实是通过使用jQuery实现图形渲染,画图,支持can ...
- WebRequest + Https + 憑証錯誤 = 作業逾時
前言 一般的系統一登入時,都會顯示公告訊息,我們的系統也是! 因為系統效能問題,所以就幫忙看了程式.發現,每次登入時,都會到DB取公告資料,但公告並不會因為個人而有所不同,是針對整個系統的呀! 所以就 ...
- DNS协议工作过程;DNS的安全隐患
DNS协议工作过程 下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...
- [原创]HTML 用div模拟select下拉框
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns=" ...
- debug.keystare找不到的解决办法[转]
重装系统之后,丢失了debug.keystore,找了很久都没有找到,根据网上所讲的只要重新运行一个android项目;就会在avd中生成一个新的debug.keystroe,此法也没解决,索性直接重 ...
- Redis安装完后redis-cli无法使用(redis-cli: command not found)已使用
wget http://download.redis.io/redis-stable.tar.gz(下载redis-cli的压缩包) tar xvzf redis-stable.tar.gz(解压) ...
- flexible
https://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html