android第三方侧滑,SlidingMenu实现侧滑效果

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,下面来看看这段代码的运行效果:

e0159de5f973665d341e83ae24fc78a7.gif

XML文件使用

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

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" />

来看运行效果:

cfb485be925083303c7fedfe357611d4.gif

上面我添加一个

sliding:behindScrollScale="0.5"

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

sliding:viewAbove="@layout/above"

sliding:viewBehind="@layout/menu"

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值