Android控件GridView实现菜单界面

GirdView为九宫格式布局,加入图片即文字做出菜单

activiyy_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#000000">

    <GridView
        android:id="@+id/gridView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="3"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        ></GridView>

</LinearLayout>
android:numColumns               设置一排的列数(参数auto_fit表示自适应)

android:horizontalSpacing=""     设置水平间距
android:verticalSpacing=""       设置垂直间距

九宫格的单个元素


item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:background="#000000"
    >

    <ImageView
        android:id="@+id/image"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/ic_launcher"
        />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:text="文字"
        android:textColor="#ffffff"
        />

</LinearLayout>

每个元素有ImageView控件和TextView组成,

android:layout_marginTop=""             设置TextView顶部与ImageView的间距

设置颜色,背景为黑色。

MainActivity.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity implements OnItemClickListener{
    private GridView gridView;
    private List<Map<String, Object>> datalist;
    private int[] icon = {
            R.drawable.address_book, R.drawable.calendar, R.drawable.camera,
            R.drawable.clock, R.drawable.games_control, R.drawable.messenger,
            R.drawable.ringtone, R.drawable.settings, R.drawable.speech_balloon,
            R.drawable.weather, R.drawable.world, R.drawable.youtube
            };
    private String[] icon_name = {
        "通讯录", "日历", "照相机",
        "时钟", "游戏", "短信",
        "铃声", "设置", "语言",
        "天气", "浏览器", "视频"
    };
    private SimpleAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        gridView = (GridView) findViewById(R.id.gridView);

        datalist = new ArrayList<Map<String,Object>>();
        adapter = new SimpleAdapter(this, getData(), R.layout.item,
                new String[]{"image", "text"}, new int[]{R.id.image, R.id.text});

        //添加适配器和监听器
        gridView.setAdapter(adapter);
        gridView.setOnItemClickListener(this);
    }

    private List<Map<String, Object>> getData() {
        for(int i = 0; i<icon.length; i++){
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("image", icon[i]);
            map.put("text", icon_name[i]);
            datalist.add(map);
        }
        return datalist;
    }

    //监听单击事件
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        //显示消息,指定消息显示的时长
        Toast.makeText(this, "我是"+icon_name[position], Toast.LENGTH_SHORT).show();
    }

}

图片资源放入对应drawable文件夹下

GridView对应的适配器使用SimpleAdapter,数据用ArrayList<Map<String,Object>>();

getData()函数对datalist赋值,数组icon和icon_name存放图片资源和字符串资源。

时间: 2024-10-22 08:29:54

Android控件GridView实现菜单界面的相关文章

Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现

Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现 2015-03-10 22:38 28419人阅读 评论(17) 收藏 举报  分类: Android UI(819)  Android开发(1568)  关注finddreams:http://blog.csdn.net/finddreams/article/details/43486527 今天我们来模仿一下支付宝钱包首页中带有分割线的GridView,俗称九宫格.先上图,是你想要的效果么?如果

Android 控件 之 Menu 菜单

http://www.cnblogs.com/Mrs-cc/archive/2012/07/21/2603042.html 1.OptionsMenu (选项菜单)用法总结 使用方法: 方法一:添加菜单项:onCreateOptionsMenu(Menu menu)中添加menu.add(Menu.NONE,Menu.FIRST+1,5,"删除").setIcon()------>添加选择菜 单项事件:在onOptionsItemSelected(MenuItem item)中

android控件篇:ViewPager+Fragment+GridView的使用(与AndroidQuery框架结合)

最近看了一个AndroidQuery的框架,里面的Demo,有个界面,让博主很喜欢.左右滑动十分顺畅,手感很好,于是拿来和大家分享一下.先看一下效果图: 从图中可以看出,上面的布局是一个Layout里面嵌套有个ViewPager,ViewPager中包含着Fragment,Fragment的布局文件包含了一个简单的GridView,GridView的Item布局很简单,就是一个100*100大小的图片.好啦,先说这么多,然后咱们看代码吧. 最外层Activity的布局文件 <?xml versi

UIAutomator定位Android控件的方法实践和建议(Appium姊妹篇)

在本人之前的一篇文章<<Appium基于安卓的各种FindElement的控件定位方法实践和建议>>第二章节谈到Appium可以通过使用UIAutomator的方法去定位Android界面上的控件,当时只是一笔带过举了个例子.如该文给自己的承诺,今天特撰写此文以描述UIAutomator各种控件定位的方法,以作为前文的姊妹篇互通有无. 1. 背景 为了和前文达成一致,这次的实践对象同样也是使用SDK自带的NotePad应用,同样是尝试去获得在NotesList那个Activity里

Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

本人之前曾经撰文描述Appium和UIAutomator框架是如何定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种FindElement的控件定位方法实践和建议 今天我们换一个渊源更留长,当今更盛行的框架Robotium,实践下看它又是如何对控件进行定位的. 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应用作为我们的试验目标应用,但是这次不仅仅是像以前一样主要围绕Menu Option里面

android控件开发之ExpandableListActivity

android控件开发之ExpandableListActivity 本博文主要讲述的是android控件开发中的ExpandableListActivity(可扩展List)控件的简单用法. java代码: package com.example.expandablelistactivity; import java.util.ArrayList; import java.util.HashMap; import android.os.Bundle; import android.app.Li

android控件开发之ExpandableListActivity(二)

android控件开发之ExpandableListActivity(二) 本博文主要讲述的是使用ExpandableListActivity创建一个类似QQ中好友列表的功能.下面我们直接来看实现的代码吧. 本实例中有一个Activity,和一个主布局文件.其他的一级目录和二级目录分别是通过重写ExpandableListActivity中的getGroupView()和getChildView()方法来实现的布局 MainActivity.java代码如下: 此Activity主要是exten

【转】UIAutomator定位Android控件的方法实践和建议(Appium姊妹篇)

原文地址:http://blog.csdn.net/zhubaitian/article/details/39777951 在本人之前的一篇文章<<Appium基于安卓的各种FindElement的控件定位方法实践和建议>>第二章节谈到Appium可以通过使用UIAutomator的方法去定位Android界面上的控件,当时只是一笔带过举了个例子.如该文给自己的承诺,今天特撰写此文以描述UIAutomator各种控件定位的方法,以作为前文的姊妹篇互通有无. 1. 背景 为了和前文达

Android控件介绍

Android控件介绍 多选按钮(CheckBox) CheckBox有两个常用的事件,OnClickListener事件和OnClickChangeListener事件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_w