先上图

须要准备的是先得在GitHub上下载ActionBarSherlock-master.zip,和SlidingMenu-master.zip这两个开源文件,然后解压这两个包,SlidingMenu里面的library文件导入到Eclipse的一个project里面(在这里不强调利Import一个androidproject),还有ActionBarSherlock里面的actionbarsherlock文件导入到Eclipse其中。

导入之后就须要把library设置为一个library方便以后再其它project里面调用。详细操作例如以下:

1.选中刚才导入的libraryproject,Alt+Enter

点击选中android,然后Add前面的actionbarsherlock文件(切记actionbarsherlock文件的路径不要是中文名,而且要跟library还有平时须要新建project的地址在同一个工作区——Workspace)。然后勾选上面的islibrary;这一步的目的是让我们的library(SlidingMenu刚才导入的项目)关联actionbarsherlock项目,由于它用到了actionbarsherlock里面的一些东西

2.假设做完第一步之后有的同学会发现可能会报错,这是由于library下的libs文件中面的包android-support-v4.jar跟actionbarsherlock存在差异,当然由于library引用actionbarsherlock里面的内容。所以我们能够删除library下libs里面的android-support-v4.jar,就能够

3.接下来就是改动library里面的SlidingFragmentActivity.java让它继承SherlockFragmentActivity。

4.做完上面的下来就是自己新建项目来实践证明一下。我最開始用的是SlidingMenu里面的example导入之后,执行完美,毫无破绽。然后就想自己新建个试试,结果遇到了非常多麻烦

首先就是须要把自己新建项目里面的libs下的那个jar包删除,有一部分同学是好的,可是我运气不好,一直是R.java文件找不到。看底下报错信息,都是在actionbarsherlock里面缺省一些信息,

后来找了半天发现我须要改动新建项目里面的AndroidMainfest.xml文件中面的theme,改成 android:theme="@style/Theme.Sherlock"
> 再此我得感谢那个叫“心尘”的同学帮了我。

只是还是有问题,R文件依旧找不到,原因这次就和明了了,是由于我使用的额Eclipse版本号可能过高。它里面新建project的时候自身会依赖另外一个包,这也就是我每次新建一个project自己主动多出来一个包的原因;然后锁依赖的这个包里面有非常多东西和library是冲突的,有的反复定义过了,所以我果断删除这个包,然后继续看哪里报错,找到报错的地方继续删除,删除之后再把Mainactivity继承的类改为最原始的Activity,会好。假设发现有menu相关的,继续删除就可以

接下来就总结下SlidingMenu的一些属性

SlidingMenu 经常使用属性介绍:

menu.setMode(SlidingMenu.LEFT);//设置左滑菜单

menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都能够滑动

menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片

menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度

menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度

menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度

menu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度

menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上

menu.setMenu(R.layout.menu_layout);//设置menu的布局文件

menu.toggle();//动态推断自己主动关闭或开启SlidingMenu

menu.showMenu();//显示SlidingMenu

menu.showContent();//显示内容

menu.setOnOpenListener(onOpenListener);//监听slidingmenu打开

关于关闭menu有两个监听,简单的来说,对于menu close事件。一个是when,一个是after

menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭时事件

menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭后事件

左右都能够划出SlidingMenu菜单仅仅须要设置

menu.setMode(SlidingMenu.LEFT_RIGHT);属性,然后设置右側菜单的布局文件

menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右側菜单的阴影图片

设置SlidingMenu属性

sm = getSlidingMenu();

//假设仅仅显示左側菜单就是用LEFT,右側就RIGHT,左右都支持就LEFT_RIGHT

sm.setMode(SlidingMenu.LEFT_RIGHT);//设置菜单滑动模式,菜单是出如今左側还是右側,还是左右两側都有

sm.setShadowDrawable(R.drawable.shadow);//设置阴影的图片资源

sm.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度

//sm.setBehindWidth(200);//设置菜单的宽

sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度

sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的区域

支持右側划出菜单:

//SlidingMenu能够同一时候支持划出左右两側的菜单。互不冲突,并且动画优美,体验良好。

sm.setSecondaryMenu(R.layout.menu_frame2);//设置右側菜单

sm.setSecondaryShadowDrawable(R.drawable.shadowright);//设置右側菜单阴影的图片资源

//右側SlidingMenu的Fragment

getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame2, new SampleListFragment()).commit();

slidingMenu = getSlidingMenu();

//设置是左滑还是右滑,还是左右都能够滑

slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);

//设置阴影宽度

slidingMenu.setShadowWidth(getWindowManager().getDefaultDisplay().getWidth() / 40);

//设置左菜单阴影图片

slidingMenu.setShadowDrawable(R.drawable.shadow);

//设置右菜单阴影图片

slidingMenu.setSecondaryShadowDrawable(R.drawable.right_shadow);

//设置菜单占屏幕的比例

slidingMenu.setBehindOffset(getWindowManager().getDefaultDisplay().getWidth() / 5);

//设置滑动时菜单的是否淡入淡出

slidingMenu.setFadeEnabled(true);

//设置淡入淡出的比例

slidingMenu.setFadeDegree(0.4f);

//设置滑动时拖拽效果

slidingMenu.setBehindScrollScale(0);

//设置要使菜单滑动,触碰屏幕的范围

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

附上自己简单写的一段

  1. SlidingMenu menu = new SlidingMenu(this);
  2. menu.setMode(SlidingMenu.LEFT);
  3. menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  4. menu.setShadowWidthRes(R.dimen.shadow_width);
  5. menu.setShadowDrawable(R.drawable.shadow);
  6. menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
  7. menu.setFadeDegree(0.35f);
  8. menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
  9. menu.setMenu(R.layout.left_drawer_fragment);
  10. menu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
  11.  
  12. @Override
  13. public void onOpened() {
  14. // TODO Auto-generated method stub
  15.  
  16. }
  17. });
  18. init();
  19. }
  1. public void init() {
  2. // LayoutInflater inflater = LayoutInflater.from();
  3. // setVisible(R.layout.left_drawer_fragment);
  4. mLinearLayout = (LinearLayout)findViewById(R.id.textLayout);
  5. mTextView1 = (TextView) findViewById(R.id.textview1);
  6. mTextView2 = (TextView) findViewById(R.id.textview2);
  7. mTextView3 = (TextView) findViewById(R.id.textview3);
  8. mTextView4 = (TextView) findViewById(R.id.textview4);
  9. mTextView5 = (TextView) findViewById(R.id.textview5);
  10. mTextView6 = (TextView) findViewById(R.id.textview6);
  11. mTextView1.setOnClickListener(this);
  12. mTextView2.setOnClickListener(this);
  13. mTextView3.setOnClickListener(this);
  14. mTextView4.setOnClickListener(this);
  15. mTextView5.setOnClickListener(this);
  16. mTextView6.setOnClickListener(this);
  17. }
  18.  
  19. @Override
  20. public void onClick(View view) {
  21. // TODO Auto-generated method stub
  22. switch (view.getId()) {
  23. case R.id.textview1:
  24. mLayout.setBackgroundColor(Color.BLUE);
  25. break;
  26. case R.id.textview2:
  27. mLayout.setBackgroundColor(Color.GREEN);
  28. break;
  29. case R.id.textview3:
  30. case R.id.textview4:
  31. case R.id.textview5:
  32. case R.id.textview6:
  33. mLayout.setBackgroundColor(Color.WHITE);
  34. break;
  35.  
  36. }
  37. }

唯一用到的图片随便找一个取代就可以

SlidingMenu开源项目滑动界面的实现总结的更多相关文章

  1. Android开发之SlidingMenu开源项目的使用和问题

    一.关于如何导入lib 第一步:New Module  点击+: 第二步:选择Import Eclipse ADT Project: 第三步:选择你想引入的lib文件,选择完成后,会开始编译你添加的项 ...

  2. SlidingMenu开源项目 -- ReadMe.md翻译

    Setup - 安装 1.  在Eclipse里,只需要把库引入Android library project就可以了.选择Project->Clean动作来生成你项目所需要的二进制数据,例如R ...

  3. 【Android UI设计与开发】第17期:滑动菜单栏(二)开源项目SlidingMenu的示例

    通过上一篇文章的讲解,相信大家对于开源项目SlidingMenu都有了一个比较初步的了解(不了解的可以参考上 一篇文章),那么从这一章开始,博主将会以SlidingMenu为重心,给大家带来非常丰富的 ...

  4. GitHub上最火的开源项目SlidingMenu导入出错的终极解决方案

    SlidingMenu 开源项目下载地址 : https://github.com/jfeinstein10/slidingmenu Actionbarsherlock 开源项目下载地址 :http: ...

  5. Android非常实用的开源项目框架

    我将文章中所描述的项目都集成在一个apk中,可以直接运行查看效果,2.2以上的机器都可以运行.因为不让直接上传apk文件,我压缩成了zip包 1. Universal-Image-Loader 实现异 ...

  6. 几款国产开源的Windows界面库

    上次介绍的几款图形界面库http://blog.okbase.net/vchelp/archive/23.html都是国外的开源项目,今天介绍的几款都是国人的开源项目,大部分是采用DirectUI设计 ...

  7. 【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例

    一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了 ...

  8. 滑动菜单栏(一)开源项目SlidingMenu的使用

    本帖最后由 user1 于 2013-7-16 21:56 编辑 一.SlidingMenu简介相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右 ...

  9. 滑动菜单栏之开源项目SlidingMenu的使用

    一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了 ...

随机推荐

  1. 【翻译】Sencha Ext JS 5公布

    原文:Announcing Sencha Ext JS 5 简单介绍 我代表Sencha和整个Ext JS团队,非常自豪的宣布,在今天,Sencha Ext JS 5公布了.Ext JS 5已经迈出了 ...

  2. POJ2392 SpaceElevator [DP]

    题目大意:有一头奶牛要上太空,他有非常多种石头,每种石头的高度是hi,可是不能放到ai之上的高度.而且这样的石头有ci个 将这些石头叠加起来.问可以达到的最高高度. 解题思路:首先对数据进行升序排序. ...

  3. android花屏效果的实现(ViewPager的基本使用)

    1.程序运行效果图 二.代码实现 1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  4. NM_CUSTOMDRAW 消息

    When the control first starts to paint itself, in response to a WM_PAINT, you receive a NM_CUSTOMDRA ...

  5. 将n进制的数组压缩成字符串(0-9 a-z)同一时候解压

    比如一个3进制的数组: [1 1 2 2 2 0 0] 用一个字符串表示... 此类题目要明白两点: 1. 打表:用数组下标索引字符.同一时候注意假设从字符相应回数字: int index = (st ...

  6. 初识JAVA,对servlet的理解

    一.WEB开发的简单理解 Web开发是一个指代网页或站点编写过程的广义术语.网页使用 HTML.CSS 和 JavaScript编写.这些页面可能是类似于文档的简单文本和图形.页面也能够是交互式的,或 ...

  7. 混淆器:java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器

    java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器 下载地址:http://yunpan.cn/QXhEcGNYLgwTD 运行方式:java -jar Encryp ...

  8. iOS_时间相关

    计算两个时间之差,并以倒计时的方式显示: 比如:剩余XX天XX小时XX分XX秒 效果图例如以下: NSDate的分类: 使用场景: watermark/2/text/aHR0cDovL2Jsb2cuY ...

  9. 在Delphi中使用C++对象(两种方法,但都要改造C++提供的DLL)

    Delphi是市场上最好的RAD工具,但是现在C++占据着主导地位,有时针对一个问题很难找到Delphi或Pascal的解决方案.可是却可能找到了一个相关的C++类.本文描述几种在Delphi代码中使 ...

  10. 与众不同 windows phone (33) - Communication(通信)之源特定组播 SSM(Source Specific Multicast)

    原文:与众不同 windows phone (33) - Communication(通信)之源特定组播 SSM(Source Specific Multicast) [索引页][源码下载] 与众不同 ...