在我还没有学习Android的时候就用过侧滑菜单的APP,当时第一个感觉是:哇塞,这效果不错!当然,现在自己都已经学Android了,这效果当然也要做出来啊~

SlidingMenu是一种比较新的设置界面或配置界面的效果(我觉得已经不新了耶~),在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作。很多优秀的应用都采用了这种界面方案,像facebook、人人网、everynote、Google+等等。效果如下图:

其实网上已经有很多写SlidingMenu使用的文章了。不过,别人始终是别人的,下面就来实现它吧。

SlidingMenu是一个在GitHub上的一个开源库,因此先访问GitHub吧。

SlidingMenu地址 : https://github.com/jfeinstein10/SlidingMenu

打开网址后的界面如下:

点击界面右下角的“Download ZIP”,即可下载该开源库。

需要注意的是,仅仅下载该开源库是不够的,通过阅读该网页可知,SlidingMenu开源库依赖于另一个开源库ActionBarSherlock,因此,还需要下载开源库ActionBarSherlock。

点击界面中带有超链接的“ActionBarSherlock”,跳转到网址为:http://actionbarsherlock.com/的网页,其界面如下:

点击图中红色箭头指向的“Zip”即可下载所需的开源库ActionBarSherlock。

将这两个开源库下载下来后都是压缩文件,因此需要解压:

OK,准备工作到此结束。

开始敲代码了……

现将这两个开源库添加到eclipse中,需要注意选择导入的目录(因为解压后的文件有很多,并不是每一个都需要导入)。如下图:

成功导入开源库后,从习惯上考虑,将它们的名称分别改为“SlidingMenulibrary”和“ActionBarSherlock”。

如图:

现在新建一个Android工程,选择系统为Android4.0,工程命名为“test_SlidingMenu”

接下来,把两个开源库添加到工程中。单击项目工程名称,点击右键,选择“Properties”。如图:

(在红色圈园处,添加这两个开源库)

此时,可能会出现如下错误:

不要慌张,出现这个错误是因为这两个开源库中使用的suppor-v4.jar包和刚才新建的工程中的suppor-v4.jar包版本不同导致的。

那么,就把工程中的suppor-v4.jar包复制到这两个开源库中,并替换调这两个开源库中的suppor-v4.jar包。这样,三个的suppor-v4.jar包都是相同的了。

接下来剩下的就是代码的问题了。

首先是新建一个布局文件,名为slidingmenu.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:background="#ff999999"
android:orientation="vertical" > <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
android:id="@+id/SlidingMenu"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="00000"/>
</com.jeremyfeinstein.slidingmenu.lib.SlidingMenu> </LinearLayout>

另外,在dimens.xml中添加一句代码:

<dimen name="slidingmenu_offset">200dp</dimen>

这句代码中的200dp的作用是设置侧滑菜单拉伸的宽度。

然后就是Activity中的代码:

(代码比较简单,就直接上代码了哈)

public class MainActivity extends Activity {
private SlidingMenu slidingmenu; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slidingmenu = new SlidingMenu(this);
slidingmenu.setMode(SlidingMenu.LEFT);// 左边的侧滑菜单
slidingmenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//设置侧滑菜单的拉伸宽度
slidingmenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 全屏触摸有效
slidingmenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);// 附加到Activity中
slidingmenu.setMenu(R.layout.slidingmenu);//设置侧滑菜单界面
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_MENU:
slidingmenu.toggle(true);//设置点击菜单按钮产生动画效果。
break; default:
break;
}
return super.onKeyDown(keyCode, event);
} }

运行效果如下图:

DEMO下载:http://download.csdn.net/detail/af74776/8074319

Android 侧滑菜单的简单实现(SlidingMenu)的更多相关文章

  1. Android 侧滑菜单的简单实现(SlidingMenu)二

    在上一篇博文中已经简单的实现了侧滑菜单,代码也很简单,就几行代码. 这篇文章依然讲侧滑菜单,与前一篇文章不同的是,这篇文章用不同的代码方式来实现侧滑菜单. 在前面的文章中已经用了在Activity中通 ...

  2. Android侧滑菜单代码实现

    前两天学习了hyman老师讲的Android侧滑菜单的实现,经过自己的整理分享出来给大家学习一下 现在很多APP都有菜单侧滑的功能,本篇文章主要讲解使用自定义的HorizontalScrollView ...

  3. 教你用DrawLayout 实现Android 侧滑菜单

    现在的APP越来越注重用户体验,百度视频客户端有一个特效还是挺吸引人的,在主界面手指向右滑动,就可以将菜单展示出来,而主界面会被隐藏大部分,但是仍有左侧的一小部分同菜单一起展示.类似的还有天天动听,人 ...

  4. android侧滑菜单笔记

    一.SlidingPaneLayout v4包下的控件,使用简单,功能简洁.官方文档明确说明该控件只能左侧滑动.使用如下: <android.support.v4.widget.SlidingP ...

  5. DrawerLayoutDemo【侧边栏(侧滑菜单)简单实现】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 简单实现侧边栏(侧滑菜单)效果: 点击触发打开左侧侧边栏,手势滑动关闭左侧侧边栏: 手势滑动打开右侧侧边栏,手势滑动关闭右侧侧边栏: ...

  6. Android侧滑菜单和轮播图之滑动冲突

    接手一个项目,有一个问题需要修改:轮播图不能手动滑动,手动滑动轮播图只会触发侧滑菜单. 猜测:viewpager控件(轮播图)的触摸事件被SlidingMenu控件(侧滑菜单,非第三方项目,乃是上个开 ...

  7. android 侧滑菜单

    就是用手一滑才出现,占手机半个多屏幕的菜单.为了美观和页面转跳,很多时候要用到. 实现的话就是使用官方的DrawerLayout,注意这个布局一定要是最顶层的布局. 在DrawerLayout里面直接 ...

  8. Android笔记(五十二) 侧滑菜单SlidingMenu

    SlidingMenu是一个优秀的开源项目,可以实现侧滑菜单,简单介绍一下这SlidingMenu的使用: 常用属性和方法: setTouchModeAbove(int i )是否可以通过滑动手势打开 ...

  9. 第三方侧滑菜单SlidingMenu在android studio中的使用

    南尘:每天进步一点点! 前面讲了官方的侧滑菜单DrawerLayout的使用,其实早在官方没有推出这个之前,就有很多第三方的jar包如SlidingMenu等,感谢开源的力量. SlidingMenu ...

随机推荐

  1. c++地址对齐

    在一些计算机上,由于性能方面的原因,2个字节的变量,必须放在2的倍数的地址中,4个字节的,就必须放在4的倍数中的地址中,以此类推. 也就是说,如果有3个占用两个字节的变量,分别为:A,B,C,如下图: ...

  2. 【Python3】SMTP发送邮件

    犹豫和反复浪费了大量时间. 与朋友言 在完成一个邮件发送程序之前我根本不明白什么是邮件,哪怕已经读过廖雪峰大神的文章,没有贬低大神的意思,大神的博客已经非常的详细, 是我的眼大肚皮小毛病在作祟,由一个 ...

  3. 我所理解的设计模式(C++实现)——备忘录模式(Memento Pattern)

    概述: 我们玩单机游戏的时候总会遇到老婆大人的各位事情,一会去买瓶醋了,一会去打个酱油了,会耽误我们玩游戏的进程,但是此时我们能有“保存游戏”这个宝贝,我们的主基地不会在我们打酱油的时候被对手拆掉. ...

  4. 2014广州Java岗位面试汇总

    本文记录了最近一些朋友提供的面试经历,真实数据,仅供广州求职的朋友参考.为行文方便,一律用主语”我“进行.部分词语可能造成读者不良反应,敬请留意. 1  广州沣首信息科技有限公司 公司所在区域相对较偏 ...

  5. MFC视图切换大全总结

    单纯视图之间的切换 单文档多视图切换是我在学习MFC中遇到的一个老大难问题,在今天总算是一一破解了.我觉得视图切换分为三个等级,第一是在未切分窗格的情况下切换视图类:第二是在分割窗格的一个窗格内实行视 ...

  6. linux中crontab实现以秒执行任务

    用crontab+sleep实现以秒执行任务 crontab -e * * * * * /bin/date >>/tmp/date.txt * * * * * sleep 10s; /bi ...

  7. 单个SWF文件loading加载详解(转)

    通过带宽查看器,可以看到SWF中每帧所占带宽状况.另外,我们还可以在Flash发布设置中,选择生成体积报告. 勾选这一项之后,发布flash时,会自动在fla目录中生成一个名为”文件名 Report. ...

  8. Cocos2d-x学习笔记(10)(CCMenu菜单)

    1.CCMenu创建方式 CCMenu* menu = CCMenu::create(cocos2d::CCMenuItem* item,--)參数为CCMenuItem菜单项的对象可变參数列表 2. ...

  9. [AngularJS] ngAnimate angular way !!

    Idea is set up javascript  as an api, then just change html to control the behavor. var app = angula ...

  10. ROC和AUC介绍以及如何计算AUC

    原文:http://alexkong.net/2013/06/introduction-to-auc-and-roc/ 为什么使用ROC曲线 既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因 ...