zoukankan      html  css  js  c++  java
  • GridView创建菜单栏

    GridView(网格视图)可以用来做九宫图、表格(行列)的视图,因其是网格状的,不用去调整权重,而且单个item可以自定义,因此也可以用来创建菜单栏(图标加文字形式),布局就一个GridView。

    1 <GridView
    2         android:id="@+id/file_gridview_toolbar"
    3         android:layout_height="wrap_content"
    4         android:layout_width="fill_parent"
    5         android:layout_alignParentBottom="true"></GridView>

    然后设置列数,背景图片等属性。跟着设置设配器。

     1 /**为GridView配饰菜单资源*/
     2     private void initGridViewMenu(){
     3          mGridViewToolbar = (GridView)findViewById(R.id.file_gridview_toolbar);
     4          //设置选中时候的背景图片
     5          mGridViewToolbar.setSelector(R.drawable.menu_item_selected);
     6          //设置背景图片
     7          mGridViewToolbar.setBackgroundResource(R.drawable.menu_background);
     8          //设置列数
     9          mGridViewToolbar.setNumColumns(6);
    10          //设置居中对齐
    11          mGridViewToolbar.setGravity(Gravity.CENTER);
    12          //设置水平,垂直间距为10
    13          mGridViewToolbar.setVerticalSpacing(10);
    14          mGridViewToolbar.setHorizontalSpacing(10);
    15          //设置适配器
    16          mGridViewToolbar.setAdapter(getMenuAdapter(gridview_menu_title,girdview_menu_image));
    17     }

    接着是适配器的定义(用SimpleAdapter):

     1     /**菜单适配器*/
     2     private SimpleAdapter getMenuAdapter(String[] menuNameArray,
     3             int[] imageResourceArray) {
     4         //数组列表用于存放映射表
     5         ArrayList<HashMap<String, Object>> mData = new ArrayList<HashMap<String, Object>>();
     6         for (int i = 0; i < menuNameArray.length; i++) {
     7             HashMap<String, Object> mMap = new HashMap<String, Object>();
     8             //将“image”映射成图片资源
     9             mMap.put("image", imageResourceArray[i]);
    10             //将“title”映射成标题
    11             mMap.put("title", menuNameArray[i]);        
    12             mData.add(mMap);
    13         }
    14         //新建简单适配器,设置适配器的布局文件,映射关系
    15         SimpleAdapter mAdapter = new SimpleAdapter(this, mData,R.layout.item_menu, new String[] { "image", "title" },new int[] { R.id.item_image, R.id.item_text });
    16         return mAdapter;
    17     }

    最后是设置GridView每一个item的监听器。

     1 /**菜单项的监听*/
     2     protected void initMenuListener(){
     3         mGridViewToolbar.setOnItemClickListener(new OnItemClickListener(){
     4 
     5             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
     6                     long arg3) {
     7                 switch(arg2){    // 以下为实例代码
     8                 //回到根目录
     9                 case 0:
    10                     menuPosition = 1;
    11                      initFileListInfo(mRootPath);
    12                     break;
    13                 //回到SD卡根目录
    14                 case 1:
    15                     menuPosition = 2;
    16                     initFileListInfo(mSDCard);
    17                     break;
    18                 //显示搜索对话框
    19                 case 2:
    20                     searchDilalog();
    21                     break;
    22                 //创建文件夹
    23                 case 3:
    24                     createFolder();
    25                     break;
    26                 //粘贴文件
    27                 case 4:
    28                     palseFile();
    29                     break;
    30                 //退出
    31                 case 5:
    32                     MainActivity.this.finish();
    33                     break;
    34                 }
    35             }          
    36         });
    37     }
  • 相关阅读:
    Java数据结构与算法(1)
    Ubuntu 19.04 桌面版的安装
    MySQL编程(0)
    CentOS 7.6 系统的安装
    CSharp设计模式读书笔记(24):访问者模式(学习难度:★★★★☆,使用频率:★☆☆☆☆)
    Xshell 5 远程连接工具的安装
    CSharp设计模式读书笔记(23):模板方法模式(学习难度:★★☆☆☆,使用频率:★★★☆☆)
    VMware 12 虚拟机软件的安装
    CSharp设计模式读书笔记(22):策略模式(学习难度:★☆☆☆☆,使用频率:★★★★☆)
    OpenStack-启动实例
  • 原文地址:https://www.cnblogs.com/Jackie-zhang/p/5277445.html
Copyright © 2011-2022 走看看