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... 具体的都在注释里边了,下面是 程序源码 ...
随机推荐
- C语言复习:文件操作
文件操作专题 C语言文件读写概念 文件分类 按文件的逻辑结构: 记录文件:由具有一定结构的记录组成(定长和不定长) 流式文件:由一个个字符(字节)数据顺序组成 按存储介质: 普通文件:存储介质文件(磁 ...
- 工厂模式——Head First
这里主要谈论其中的工厂方法模式和抽象工厂模式. 一.定义 工厂方法模式(Factory Method Pattern)定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个.工厂方法让类把实例化推 ...
- Java IO流学习总结二:File
Java File类的功能非常强大,利用java基本上可以对文件进行所有操作.首先来看File类的构造函数的源码 /** * Internal constructor for already-norm ...
- RH_KABI_RESERVE的使用
struct mm_struct { .......... #if defined(__GENKSYMS__) || !defined(CONFIG_SPAPR_TCE_IOMMU) /* We're ...
- Idiom: a Lot on my Plate
Idiom: a Lot on my Plate Share Tweet Share Tagged With: Idioms I’ve got a lot on my plate. American ...
- Python 3 学习笔记(3)
模块 编写模块 # fibo.py # Fibonacci numbers module def fib(n): # write Fibonacci series up to n a, b = 0, ...
- 转:用JS获取地址栏参数的方法(超级简单)
转载链接: http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实 ...
- Nmap结果文件XML文件解析
对nmap扫描结果xml格式的文件进行解析,无需直接xml解析或读取,可直接使用模块: 1.nmapparser 安装:pip install nmapparser Demo: #!/usr/bin/ ...
- Unity3D之Lightmap详解
作者:李志健 Unity 完全集成了光照贴图,可以通过编辑器创建完整的光照贴图,你完全不用担心,所有材质会自动获得光照贴图.光照贴图的意思是,所有灯光的特性将被直接映射到Beast lightmapp ...
- Android 抓取LOG的几种命令【转】
通常调试时候需要抓取log信息,下面几种通过ADB命令来抓取log的方法: USB连接上手机,手机需要其他操作:然后运行ADB工具:输入不同的命令即可抓取对应的LOG信息. 抓取radio LOG信息 ...