SlidingMenu开源项目滑动界面的实现总结

先上图

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

导入之后就需要把library设置为一个library方便以后再其他工程里面调用,具体操作如下:

1.选中刚才导入的library工程,Alt+Enter

点击选中android,然后Add前面的actionbarsherlock文件(切记actionbarsherlock文件的路径不要是中文名,并且要跟library还有平时需要新建工程的地址在同一个工作区——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版本可能过高,它里面新建工程的时候自身会依赖另外一个包,这也就是我每次新建一个工程自动多出来一个包的原因;然后锁依赖的这个包里面有很多东西和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);

附上自己简单写的一段

SlidingMenu menu = new SlidingMenu(this);
		menu.setMode(SlidingMenu.LEFT);
		menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
		menu.setShadowWidthRes(R.dimen.shadow_width);
		menu.setShadowDrawable(R.drawable.shadow);
		menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
		menu.setFadeDegree(0.35f);
		menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
		menu.setMenu(R.layout.left_drawer_fragment);
		menu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {

			@Override
			public void onOpened() {
				// TODO Auto-generated method stub

			}
		});
		 init();
	}
	public void init() {
	//	LayoutInflater inflater = LayoutInflater.from();
	//	setVisible(R.layout.left_drawer_fragment);
		mLinearLayout = (LinearLayout)findViewById(R.id.textLayout);
		mTextView1 = (TextView) findViewById(R.id.textview1);
		mTextView2 = (TextView) findViewById(R.id.textview2);
		mTextView3 = (TextView) findViewById(R.id.textview3);
		mTextView4 = (TextView) findViewById(R.id.textview4);
		mTextView5 = (TextView) findViewById(R.id.textview5);
		mTextView6 = (TextView) findViewById(R.id.textview6);
		mTextView1.setOnClickListener(this);
		mTextView2.setOnClickListener(this);
		mTextView3.setOnClickListener(this);
		mTextView4.setOnClickListener(this);
		mTextView5.setOnClickListener(this);
		mTextView6.setOnClickListener(this);
	}

	@Override
	public void onClick(View view) {
		// TODO Auto-generated method stub
		switch (view.getId()) {
		case R.id.textview1:
			mLayout.setBackgroundColor(Color.BLUE);
			break;
		case R.id.textview2:
			mLayout.setBackgroundColor(Color.GREEN);
			break;
		case R.id.textview3:
		case R.id.textview4:
		case R.id.textview5:
		case R.id.textview6:
			mLayout.setBackgroundColor(Color.WHITE);
			break;

		}
	}

唯一用到的图片随便找一个代替即可

SlidingMenu开源项目滑动界面的实现总结,布布扣,bubuko.com

时间: 2024-10-05 16:30:40

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

SlidingMenu开源项目

Setup - 安装 1.  在Eclipse里,只需要把库引入Android library project就可以了.选择Project->Clean动作来生成你项目所需要的二进制数据,例如R.java等. 2.  然后,把SlidingMenu添加为你项目的引用就可以了. 译者注:添加项目引用比较麻烦,在这里说明下: a.  下载zip包.下载地址:https://github.com/jfeinstein10/SlidingMenu.网页打开后,下载在右边,如图: b.  解压压缩包,然后

滑动菜单栏(二)开源项目SlidingMenu的示例

这篇文章会给大家带来7个不同效果的示例,每个示例都包含了最基本的使用方法,从易到难,循序渐进.能够 让初学者可以快速的掌握SlidingMenu的使用方法.下一篇文章会给大家带来三种不同的动画效果来实现滑动菜单栏 的滑动. 关于这些示例,都是SlidingMenu开源项目中自带的一些示例,但是对于初学者来说,要想运行这些示例查看效 果,就必须要导入很多的库,使用起来也是非常的麻烦.博主这里为了能够方便大家更好的学习,就把每个示例都单 独拿了出来,并且添加了一些非常详细的注释,让初学者能够一看就懂

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

通过上一篇文章的讲解,相信大家对于开源项目SlidingMenu都有了一个比较初步的了解(不了解的可以参考上 一篇文章),那么从这一章开始,博主将会以SlidingMenu为重心,给大家带来非常丰富的示例演示,让大家对 SlidingMenu有一个更加深入的了解以及如何去实现一些比较炫的滑动效果. 这篇文章会给大家带来7个不同效果的示例,每个示例都包含了最基本的使用方法,从易到难,循序渐进.能够 让初学者可以快速的掌握SlidingMenu的使用方法.下一篇文章会给大家带来三种不同的动画效果来实

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

SlidingMenu 开源项目下载地址 : https://github.com/jfeinstein10/slidingmenu Actionbarsherlock 开源项目下载地址 :http://actionbarsherlock.com/download.html 导入步骤如下: 1.将下载的Actionbarsherlock中/actionbarsherlock文件夹复制到workspace(你的项目工作空间),改名为Actionbarssherlock,从eclipse中操作new

几款国产开源的Windows界面库

上次介绍的几款图形界面库http://blog.okbase.net/vchelp/archive/23.html都是国外的开源项目,今天介绍的几款都是国人的开源项目,大部分是采用DirectUI设计思想. 1.  炫彩界面库XCGUI 炫彩界面库不仅是界面库,它是软件界面开发框架,让用户开发桌面软件变的简单高效,它功能丰富, 小巧,安全(所有界面元素无句柄),Unicode字符编码,完善的帮助文档; 并且提供了UI设计器,支持XML布局,CSS样式表,XML资源;该库采用C语言开发,速度更快,

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

一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像facebook.人人网.everynote.Google+等等.如下图所示: 因为效果确实比较新颖,所以在很多的应用开发中去实现此效果,解决的办法也是不尽相同.诸多比较以后发 现,还是GitHub上的开源项目SlidingMenu提供了最佳的实现:定制灵活.各种阴影和渐变以及动画的

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

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9255829   第一次使用开源框架SlidingMenu 一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像facebook.人人网.everynote.Google+等等.如下图所示: Google+界面效果

【Android UI设计与开发】第16期:滑动菜单栏(一)开源项目SlidingMenu的使用

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9255829   由于最近的工作确实比较忙的原因,所以这个系列的教程有一段时间没有更新了,也请各位读者见谅.这期博主要给大家带来的是关于滑动菜单栏的实现效果. 一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像f

Android自定义控件——开源组件SlidingMenu的项目集成

转载请注明出处:http://blog.csdn.net/allen315410/article/details/39611355  在实际项目开发中,定制一个菜单,能让用户得到更好的用户体验,诚然菜单的样式各种各样,但是有一种菜单--滑动菜单,是被众多应用广泛使用的.关于这种滑动菜单的实现,我在前面的博文中也介绍了如何自定义去实现,请参考Android自定义控件--侧滑菜单,这篇博文描述的是如何从无到有创建一个侧滑菜单的控件,里面的代码不多,但是处理的逻辑和各种效果比较复杂,如果稍有不慎,这种