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. Masm615+notepad++6.8.8搭建汇编开发环境

    前言:很早以前搭过,做了笔记的.现在重新玩汇编,按照笔记撘环境,谁知道坑了自己两个小时,气的我现在打字手都在抖 准备工作: 1.Masm615汇编环境,下载地址:https://pan.baidu.c ...

  2. 浅谈Phoenix在HBase中的应用

    一.前言 业务使用HBase已经有一段时间了,期间也反馈了很多问题,其中反馈最多的是HBase是否支持SQL查询和二级索引,由于HBase在这两块上目前暂不支持,导致业务在使用时无法更好的利用现有的经 ...

  3. ASP.NET Core 2 学习笔记(九)模型绑定

    ASP.NET Core MVC的Model Binding会将HTTP Request数据,以映射的方式对应到参数中.基本上跟ASP.NET MVC差不多,但能Binding的来源更多了一些.本篇将 ...

  4. WebApi的调用-1.前端调用

    前端调用 html <div class="row"> <form id="queryForm"> <input name=&qu ...

  5. 关于trim,ltrim ,rtrim 的 移除问题

    今天在PHP中遇到一个问题: echo ltrim('D:/wamp/www/phpnow/demo/','D:/wamp/www/'); echo ltrim('D:/wamp/www/phpnow ...

  6. window 下忘记了mysql 密码的解决方法

    1.以管理员身份打开cmd,关闭MySQL. net stop mysql 2.跳过权限检查启动,进入安装目录bin下. mysqld --skip-grant-tables或者mysqld-nt - ...

  7. HDU5730

    cdq分治+FFT 转移:dp[i]=Σdp[i-j]*a[j](1<=j<=i)

  8. day9线程和进程

    进程:qq要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的对各种资源管理的集合,就可称之为进程. 线程:是操作系统最小的调度单位,是一串指令的集合. 进程:要操作CPU,必须要先 ...

  9. java:冒泡排序、选择排序、插入排序实现

    整数排序 给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法. 样例 样例 1: 输入: [3, 2, 1, 4, 5] 输出: [1, 2, 3, 4, 5] ...

  10. BZOJ1567 [JSOI2008]Blue Mary的战役地图 二分答案 哈希

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1567 题意概括 给出两个n*n的数字矩阵,问最大公共正方形边长. 题解 先二分答案一个m,对于每一 ...