在我还没有学习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. ORACLE R12 MOAC

    MOAC简介 MOAC(Multi-Org Access Control)为多组织访问控制,是Oracle EBS R12的重要新功能.它可以实现在一个Responsibility下对多个OU(Ope ...

  2. jquery 绑定省份和城市

    前台代码: <asp:DropDownList runat="server" ID="ddlProvince"></asp:DropDownL ...

  3. java web,生成验证码图片的技术

    偶然知道原来有些网站的验证码图片都是随机生成的,后来听人讲了一下,就做了这个小例子 生成图片,绘制背景,数字,干扰线用到了java.awt包,主要使用BufferedImage来生成图片,然后使用Gr ...

  4. Oracle数据库的版本变迁功能对比

    Oracle数据库自发布至今,也经历了一个从不稳定到稳定,从功能简单至强大的过程.从第二版开始,Oracle的每一次版本变迁,都具有里程碑意义. 1979年的夏季,RSI(Oracle公司的前身,Re ...

  5. too many automatic redirections were attempted

    用HttpClient时发现一下页面跳转现象. 页面A要求授权自动跳转到页面B, 页面B进行了授权,在HTTP Header里要求SetCookie并跳转到页面A. 再次请求页面A的时候没有带上此Co ...

  6. UVa Online Judge 工具網站

    UVa Online Judge 工具網站   UVa中译题uHuntAlgorithmist Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 Mirror UVa Online Judg ...

  7. 清除XCode缓存和生成文件

    1.Command-Option-Shift-K to clean out the build folder XCode4.2    finder中找到   /Users/apple/Library/ ...

  8. cc代码学习笔记1

    #define #define INT32 int #define INT8 char #define CHAR char #define SSHORT signed short #define IN ...

  9. PXC的原理

    http://www.blogs8.cn/posts/AWif6E4 mariadb的集群也是抄percona的,原理跟PXC一样maridb-cluster就是PXC,原理是一样的.codeship ...

  10. 浅谈Linux的内存管理机制

    转至:http://ixdba.blog.51cto.com/2895551/541355 一 物理内存和虚拟内存          我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此, ...