Android开源SlidingMenu的使用
来源:互联网 发布:淘宝店铺设置最低折扣 编辑:程序博客网 时间:2024/05/17 04:05
一、SlidingMenu简介
SlidingMenu是最常用的几个开源项目之一.
GitHub上的开源项目Slidingmenu提供了最佳的实现:定制灵活、各种阴影和渐变以及动画的滑动效果都不错。不过这是一个开源库,要把它作为library引入到你自己的工程里,简单配置一下就可以实现SlidingMenu的效果。
二、项目的导入
三、具体实现
你可以直接继承app这个包中的SlidingActivity,SlidingFragmentActivity,SlidingListActivity等这几个类去实现这个效果,或直接在项目中初始化SlidingMenu,并进行配置后使用。
1、项目中初始化SlidingMenu
1
2
3
4
5
6
7
8
9
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);
<span style=
"white-space:pre"
> </span>menu.setMenu(R.layout.menu);
View view = LayoutInflater.from(this).inflate(R.layout.menu, null);
menu.setMenu(view);
这样就可以直接操作menu布局中的控件了。
2、SlidingFragmentActivity的实现
主类继承SlidingFragmentActivity。 因为SlidingFragmentActivity里面已集成了SlidingMenu,所以可以通过getSlidingMenu()可以获取到一个SlidingMenu对象,然后像下面的代码一样设置常用的属性就可以l1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<span style=
"white-space:pre"
> </span>
// 设置存放侧滑栏的容器的布局文件
setBehindContentView(R.layout.menu);
// 将侧滑栏的fragment类填充到侧滑栏的容器的布局文件中
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment fragment =
new
MenuFragment();
transaction.replace(R.id.menu_fragment, fragment);
transaction.commit();
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidth(
0
);
sm.setShadowDrawable(R.drawable.shadow);
// 设置侧滑栏完全展开之后,距离另外一边的距离,单位px,设置的越大,侧滑栏的宽度越小
sm.setBehindOffset(
100
);
// 设置渐变的程度,范围是0-1.0f,设置的越大,则在侧滑栏刚划出的时候,颜色就越暗。1.0f的时候,颜色为全黑
sm.setFadeDegree(
0
.3f);
// 设置触摸模式,可以选择全屏划出,或者是边缘划出,或者是不可划出
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//设置actionBar能否跟随侧滑栏移动,如果没有,则可以去掉
setSlidingActionBarEnabled(
false
);
3、双侧滑栏
我们可以通过下面的代码实现双侧滑栏的效果:1
2
3
4
5
6
7
8
9
10
11
12
<span style=
"white-space:pre"
> </span>
// 设置左边的侧滑栏
getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
setContentView(R.layout.content_frame);
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame,
new
SampleListFragment()).commit();
// 设置右边的侧滑栏
getSlidingMenu().setSecondaryMenu(R.layout.menu_frame_two);
getSlidingMenu().setSecondaryShadowDrawable(R.drawable.shadowright);
getSupportFragmentManager().beginTransaction()
.replace(R.id.menu_frame_two,
new
SampleListFragment())
.commit();
4、设置触摸模式
通过getSlidingMenu().setTouchModeAbove()可以设置侧滑栏的触摸模式,用下面3个常量值:
SlidingMenu.TOUCHMODE_FULLSCREEN 全屏幕模式,全屏滑动都可打开
SlidingMenu.TOUCHMODE_MARGIN 侧边模式,只在屏幕侧边滑动才能打开,中心滑动不能打开
SlidingMenu.TOUCHMODE_NONE 禁止触摸模式,不能够通过触摸打开,只能够通过SlidingMenu().toggle()打开或者是关闭
5、设置侧滑栏显示动画
通过SlidingMenu.setbehindCanvasTransformer(CanvasTransformer);方法可以设置侧滑栏的显示动画,参数是一个CanvasTransformer对象。下面是几个常见的动画的设置:折叠动画:
1
2
3
4
5
6
new
CanvasTransformer() {
@Override
public
void
transformCanvas(Canvas canvas,
float
percentOpen) {
canvas.scale(percentOpen,
1
,
0
,
0
);
}
}
缩放动画:
1
2
3
4
5
6
7
new
CanvasTransformer() {
@Override
public
void
transformCanvas(Canvas canvas,
float
percentOpen) {
float
scale = (
float
) (percentOpen*
0.25
+
0.75
);
canvas.scale(scale, scale, canvas.getWidth()/
2
, canvas.getHeight()/
2
);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private
static
Interpolator interp =
new
Interpolator() {
@Override
public
float
getInterpolation(
float
t) {
t -=
1
.0f;
return
t * t * t +
1
.0f;
}
};
new
CanvasTransformer() {
@Override
public
void
transformCanvas(Canvas canvas,
float
percentOpen) {
canvas.translate(
0
, canvas.getHeight()*(
1
-interp.getInterpolation(percentOpen)));
}
}
0 0
- Android开源SlidingMenu的使用
- Android开源SlidingMenu的使用
- Android开源SlidingMenu的使用
- Android开源SlidingMenu的使用
- android slidingmenu的使用
- Android SlidingMenu的使用
- Android之SlidingMenu的使用
- Android下Slidingmenu和actionbarsherlock的使用
- Android开源项目SlidingMenu的使用
- Android中SlidingMenu框架的使用
- Android Studip下SlidingMenu的使用总结
- slidingMenu Android测量框架的使用
- Android studio 中SlidingMenu的使用
- Android中SlidingMenu开源库的使用
- android SlidingMenu侧滑的简单使用
- Android SlidingMenu 使用详解
- Android SlidingMenu 使用详解
- Android SlidingMenu 使用详解
- PGM:无向图模型:马尔可夫网
- LVS 工作模式以及工作原理
- JavaScript学习总结(一)基础部分
- 编程习惯积累
- UICollectionView 、UItableView 动态改变高度
- Android开源SlidingMenu的使用
- git之rebase和merge学习记录
- oracle数据处理需求01
- C#文件下载
- Spring学习总结(17)——Spring AOP权限管理
- ZOJ 3353 Chess Board && NEFU OJ 506(高斯消元好题)
- Android —— VauleAnimator动画进阶
- 9.9学习记录
- LINUX集群--均衡负载 LVS(一) LVS认知