Android上的菜单展示风格目前是各式各样的,但用的最多且体验最好的莫过于左右滑动来显示隐藏的菜单
本示例实现了各种方式的菜单展示效果,只有你想不到的
源码:https://github.com/SimonVT/android-menudrawer.git

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:gravity="center"
android:orientation="vertical"> <Button
android:id="@+id/windowSample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Window sample" /> <Button
android:id="@+id/overlayWindowSample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Action Bar overlay window sample" /> <Button
android:id="@+id/contentSample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Content sample" /> <Button
android:id="@+id/listActivitySample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ListActivity sample" /> </LinearLayout>

SimplesActivity.java

package net.simonvt.menudrawer.samples;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView; import java.util.ArrayList;
import java.util.List; public class SamplesActivity extends ListActivity { private SamplesAdapter mAdapter; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdapter = new SamplesAdapter(); mAdapter.addSample("Content sample", "Only the content area is dragged.", ContentSample.class);
mAdapter.addSample("ListActivity sample", "Shows how to use the drawer with a ListActivity.",
ListActivitySample.class);
mAdapter.addSample("Window sample", "The entire window is dragged.", WindowSample.class);
mAdapter.addSample("ActionBar overlay sample", "A window sample, where the ActionBar is an overlay",
ActionBarOverlaySample.class);
mAdapter.addSample("Right menu", "The menu is positioned to the right of the content", RightMenuSample.class);
mAdapter.addSample("Top menu", "The menu is positioned above the content", TopMenuSample.class);
mAdapter.addSample("Bottom menu", "The menu is positioned below the content", BottomMenuSample.class);
mAdapter.addSample("Touch Mode", "The menu touch behavior change according to different"
+ " content view state (Ex: View Pager)", ViewPagerSample.class);
mAdapter.addSample("Layout xml", "The drawer and its menu and content is defined in XML", LayoutSample.class);
mAdapter.addSample("Static drawer", "The drawer is always visible", StaticDrawerSample.class); setListAdapter(mAdapter);
} @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
SampleItem sample = (SampleItem) mAdapter.getItem(position);
Intent i = new Intent(this, sample.mClazz);
startActivity(i);
} private static class SampleItem { String mTitle;
String mSummary;
Class mClazz; public SampleItem(String title, String summary, Class clazz) {
mTitle = title;
mSummary = summary;
mClazz = clazz;
}
} public class SamplesAdapter extends BaseAdapter { private List<SampleItem> mSamples = new ArrayList<SampleItem>(); public void addSample(String title, String summary, Class clazz) {
mSamples.add(new SampleItem(title, summary, clazz));
} @Override
public int getCount() {
return mSamples.size();
} @Override
public Object getItem(int position) {
return mSamples.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
SampleItem sample = (SampleItem) getItem(position); View v = convertView;
if (v == null) {
v = getLayoutInflater().inflate(R.layout.list_row_sample, parent, false);
} ((TextView) v.findViewById(R.id.title)).setText(sample.mTitle);
((TextView) v.findViewById(R.id.summary)).setText(sample.mSummary); return v;
}
}
}

转:http://code.eoe.cn/215.html

Android上实现各种风格的隐藏菜单,比如左右滑动菜单、上下滑动显示隐藏菜单的更多相关文章

  1. [转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation

    原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...

  2. Android主题theme和风格style总结

    用到了Android的主题和风格,感觉很多地方需要总结和记录下来.其实主题和风格是有很大的作用的,特别是界面要求比较高的客户端. Style:是一个包含一种或者多种格式化属性的集合,我们可以将其用为一 ...

  3. 页面结构化在 Android 上的尝试

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/M45DM5Ix7a2fmrsE8VPvxg 作者:b ...

  4. 如何为Android上的产品设计一款合适的图标

    如 果你已经完成了你的app,你一定会马上向其它人宣布这件事情.但是你需要注意一个很重要的问题,那就是app的图标.你的图标可能在项目启动之 前就已经设计好了,但我不喜欢这样,如果app没有完成实际上 ...

  5. Android上HDMI介绍(基于高通平台)

    本文重点针对HDMI在android上的应用,而比较相关的就是overlay机制.overlay在这里只是简单的介绍,后续会有文章再专门详述. 我没记错的话,高通从7X30开始,平台就可以支持HDMI ...

  6. 可以兼容ie6的纯CSS三级鼠标悬停显示/隐藏菜单实现

    本来在chrome上用js写的好好的三级显隐菜单,放到ie6上一测试竟然奇葩般的会瞎闪.问题原因至今没参透,可能是我每次响应事件的处理代码过长??总之我是对ie6幻灭了,去网上搜一搜能支持ie6的下拉 ...

  7. Android上拉查看详情实现

    京东淘宝有那么一种效果就是,上拉能够查看宝贝的详情,这里我也实现了一个类似的效果,也能够移植到商业项目上:先看看简单的效果图 实现原理事实上是利用了ScrollView的滚动和view的touch事件 ...

  8. [转]收集android上开源的酷炫的交互动画和视觉效果

    原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...

  9. 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击

    通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...

随机推荐

  1. jmeter参数化、添加变量、生成随机数和导入csv文件数据

    Remarks:本次使用jmeter版本为4.0 以下数据都在必应中演示: 添加普通变量 1.添加 User Defined Variables(用户自定义变量) 2.设置变量 3.使用变量 4.查看 ...

  2. hdu 1010 走到终点时刚好花掉所有时间 (DFS + 奇偶性剪枝 )

    题意:输入一个n*m的迷宫,和一个T:可以在迷宫中生存的最大时间.S为起点,D为终点.并且,每个格子只能踩一次,且只能维持一秒,然后该块地板就会塌陷.所以你必须每秒走一步,且到D点时,所用时间为T.用 ...

  3. asp.net core session的使用

    Session介绍 本文假设读者已经了解Session的概念和作用,并且在传统的.net framework平台上使用过. Asp.net core 1.0好像需要单独安装,在nuget控制台,选择你 ...

  4. JsBom

    BOM 所谓BOM指的是浏览器对象模型 Browser Object Model,它的核心就是浏览器 Bom浏览器对象模型 1.bom输出 <!DOCTYPE html> <html ...

  5. 【Java】 剑指offer(31) 栈的压入、弹出序列

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否 ...

  6. IPython3 notebook 成功配置Python2和Python3内核(Kernel)

    1.首先通过python3的pip3安装ipython sudo pip3 install ipython 2.安装python 内核 python2: sudo pip2 install ipyke ...

  7. MAC OS X下配置PHP开发、调试环境

    操作系统:MAC OS X 工具:MAMP.PhpStorm.xdebug.chrome 1.下载MAMP 2.安装比较简单,安装完成后,应用程序中会增加如下4个应用 MacGDBp是PHP调试器,使 ...

  8. pandas学习(数据分组与分组运算、离散化处理、数据合并)

    pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 ...

  9. P2393 yyy loves Maths II

    P2393 yyy loves Maths IIlong double比如保留5位小数*1000000都变成整数最后再/1000000避免精度误差scanf("%Lf",& ...

  10. IntelliJ IDEA 2018.3 重大升级(转)

    |0前言 2018.11.28 IntelliJ IDEA 2018.3 正式版发布.对于一个忠实爱好者,迫不及待的我下载了最新版本来体验下.而且 IDEA 今年的第三次重大更新提供了不容错过的显著功 ...