AS配置SlidingMenu及简单使用

SlidingMenu github下载地址:https://github.com/jfeinstein10/SlidingMenu

下载下来是一个SlidingMenu-master.zip包,然后解压成SlidingMenu-master

一. 配置步骤:

(1)新建一个model - library

AS配置SlidingMenu及简单使用

AS配置SlidingMenu及简单使用

AS配置SlidingMenu及简单使用

名字可随意,见名知意最好。

(2)删除新建的library的这三个文件

AS配置SlidingMenu及简单使用

(3)找到你下载的SlidingMenu-smaster包中library的红框中的三个文件,将其复制在之前删除的地方.

AS配置SlidingMenu及简单使用


再将src改为java.

AS配置SlidingMenu及简单使用

(4)依赖项目

打开项目的AS配置SlidingMenu及简单使用

AS配置SlidingMenu及简单使用

(5)配置完后可能会出现的问题

AS配置SlidingMenu及简单使用

将FloatMath 换成 Math即可,FloatMath 为过时方法

AS配置SlidingMenu及简单使用

说明:会看到有两个包,mylibrary是为了写这篇文档新建的,slidingmenu是我已经绑定的

,自己实操作了一遍才写的,莫在意名字的不同。

至此配置完成。

二. 简单使用

(1)添加一个侧滑栏布局

AS配置SlidingMenu及简单使用

我只是设置了一个颜色背景

(2)设置侧滑栏

AS配置SlidingMenu及简单使用

(3)打开侧滑栏

AS配置SlidingMenu及简单使用

不想用menu物理键,所有我在activity中设置了一个button。

三. 设置阴影效果

(1)在library包的SlidingMenu.java中添加此方法

public void setOffsetFadeDegree(float f) {
   mViewBehind.setOffsetFadeDegree(f);
}

(2)在CustomViewBehind.java中添加

private float mOffsetFadeDegree;
public void setOffsetFadeDegree(float degree) {
   if (degree > 1.0f || degree < 0.0f)
      throw new IllegalStateException("The offsetFadeDegree must be between 0.0f and 1.0f");
   mOffsetFadeDegree = degree;
}
/**
 * 绘制剩余View的淡出淡入
 * @param content 主界面
 * @param canvas  画布
 * @param openPercent 打开了的百分比
 */
public void drawOffsetFade(View content, Canvas canvas, float openPercent) {
   if (mWidthOffset <= 0 || mOffsetFadeDegree <= 0) return;   //不开启就返回,不设置 淡入淡出效果

   final int alpha = (int) (mOffsetFadeDegree * 255 * Math.abs(openPercent));
   mFadePaint.setColor(Color.argb(alpha, 0, 0, 0));
   canvas.drawRect(content.getLeft(), 0,content.getRight(), getHeight(), mFadePaint);
}
(3)在CustomViewAbove.java中的dispatchDraw方法中修改成

再将sre改为java.

@Override
protected void dispatchDraw(Canvas canvas) {
   super.dispatchDraw(canvas);
   // Draw the margin drawable if needed.
   mViewBehind.drawShadow(mContent, canvas);
   mViewBehind.drawFade(mContent, canvas, getPercentOpen());    //绘制剩余View的淡入淡出
   mViewBehind.drawOffsetFade(mContent, canvas, getPercentOpen());
   mViewBehind.drawSelector(mContent, canvas, getPercentOpen());   //
}

(4)设置阴影效果

menu.setOffsetFadeDegree(0.4f);


再将sre改为java.