SlidingMenu实现侧滑效果

栏目: Android · 发布时间: 6年前

内容简介:SlidingMenu是前两年很火的一个第三方侧滑项目,目前已经很久没有再更新过了,目前Google自己也出了一个侧滑控件叫做Drawerlayout,很好用,如果想学习可以查看我的相关博客:使用这个三方常用的方式有两种,一种是直接用代码创建对象,一种是在布局文件中使用,今天就分别来演示一遍。在使用前当然是一些准备工作,首先要做的是下载这个第三方库,如果你不嫌麻烦可以直接从github上面下载:下载完之后找到slidelibrary这个文件夹,他就是类库的源文件,导入之后和你自己的项目关联上,如果允许之后

SlidingMenu是前两年很火的一个第三方侧滑项目,目前已经很久没有再更新过了,目前Google自己也出了一个侧滑控件叫做Drawerlayout,很好用,如果想学习可以查看我的相关博客: drawerlayout的使用 ,不过很多同学还是想用第三方的,那么几天就来带大家学习一下这个三方库吧。

使用这个三方常用的方式有两种,一种是直接用代码创建对象,一种是在布局文件中使用,今天就分别来演示一遍。在使用前当然是一些准备工作,首先要做的是下载这个第三方库,如果你不嫌麻烦可以直接从github上面下载: github ,当然最后我也会提供类库给大家,这里我就以你下载我给的类库为演示基础。

下载完之后找到slidelibrary这个文件夹,他就是类库的源文件,导入之后和你自己的项目关联上,如果允许之后出现classnotfand的错误那是因为类库使用的v4包和你项目使用的V4包不一致导致的,解决办法就是把自己的v4包覆盖掉类库的v4包。准备工作完成之后我们就正式的开始使用了。

首先我们使用代码来创建,因为注释写的很详细了,里面的方法这里就不再赘述了,先来看Activity代码:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建对象
SlidingMenu smenu = new SlidingMenu(this);
// 设置出现在左边还是右边
smenu.setMode(SlidingMenu.LEFT);
// 设置调出slidingmenu的区域
smenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
// 设置阴影的宽度
smenu.setShadowWidth(8);
smenu.setShadowDrawable(R.drawable.shadow);
// 设置slidingmenu滑出来时的宽度
smenu.setBehindOffset(100);
// 设置刚拉出来的时候颜色,1为全黑
smenu.setFadeDegree(0.3f);
// 添加到Activity上面
smenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
smenu.setMenu(R.layout.menu);
// 关闭监听
smenu.setOnClosedListener(new OnClosedListener() {

@Override
public void onClosed() {
Toast.makeText(MainActivity.this, "关闭了", Toast.LENGTH_SHORT).show();

}
});
// 打开监听
smenu.setOnOpenedListener(new OnOpenedListener() {

@Override
public void onOpened() {
Toast.makeText(MainActivity.this, "打开了", Toast.LENGTH_SHORT).show();

}
});
// 创建动画对象设置显示的时候出现的动画,这里我写的是一个入场动画
CanvasTransformer canvasTransformer = 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);
}
};
smenu.setBehindCanvasTransformer(canvasTransformer);
}

}

基本使用思路就是先创建一个slidingmenu对象,然后对这个对象各种设置,完了之后调用attachToActivity方法使之和本Activity关联上,然后调用setmenu方法设置slidingmenu的布局文件,最后设置一些监听方法和一个打开关闭时的动画效果。我的slidingmenu布局文件很简单就一个imageView,下面来看看这段代码的运行效果:

SlidingMenu实现侧滑效果

XML文件使用

在主布局文件中代码如下:

<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sliding="http://schemas.android.com/apk/res-auto"
android:id="@+id/slidingmenulayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
sliding:behindOffset="100px"
sliding:behindScrollScale="0.5"
sliding:fadeDegree="0.3"
sliding:fadeEnabled="true"
sliding:selectorDrawable="@drawable/shadow"
sliding:selectorEnabled="true"
sliding:shadowDrawable="@drawable/shadow"
sliding:shadowWidth="8px"
sliding:touchModeAbove="margin"
sliding:viewAbove="@layout/above"
sliding:viewBehind="@layout/menu" />

来看运行效果:

SlidingMenu实现侧滑效果

上面我添加一个

sliding:behindScrollScale="0.5"

所以滑动的位置和slidingmenu显示的区域成1:2的关系,使用xml来用slidingmenu只需要把主布局文件里放一个上面的代码就够了,主界面显示和抽屉布局显示是通过:

sliding:viewAbove="@layout/above"
sliding:viewBehind="@layout/menu"

这两行代码实现的,前一个是设置主界面,后一个是设置抽屉布局内容的。


以上所述就是小编给大家介绍的《SlidingMenu实现侧滑效果》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

信息检索导论

信息检索导论

Christopher D.Manning、Hinrich Schütze、Prabhakar Raghavan / 王斌 / 人民邮电出版社 / 201008 / 69.00元

封面图片为英国伯明翰塞尔福瑞吉百货大楼,其极具线条感的轮廓外型优美,犹如水波的流动。其外表悬挂了1.5万个铝碟,创造出一种极具现代气息的纹理装饰效果,有如夜空下水流的波光粼粼,闪烁于月光之下,使建筑的商业氛围表现到极致。设计该建筑的英国“未来系统建筑事物所”,将商场内部围合成一个顶部采光的中庭,配以交叉的自动扶梯,使购物环境呈现出一种凝聚的向心力和商业广告的展示效应。作为英国第二商业城市伯明翰的建......一起来看看 《信息检索导论》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具