Android开源库——SlidingMenu

SlidingMenu

概述

一款侧滑菜单的开源类库~

SlidingMenu is an Open Source Android library that allows developers to easily create applications with sliding menus like those made popular in the Google+, YouTube, and Facebook apps. Feel free to use it all you want in your Android apps provided that you cite this project and include the license in your app.

项目地址:https://github.com/jfeinstein10/SlidingMenu

在Android Studio中集成SlidingMenu

  1. 创建Android Studio项目
  2. 把下载的SlidingMenu集成到项目中File->New->Import Module->选择SlidingMenu下的library
  3. 根据构造错误修改配置文件

Android开源库——SlidingMenu_第1张图片

Android开源库——SlidingMenu_第2张图片

然后会有若干错误,逐个按照提示去解决。

 


入门使用

//configure the SlidingMenu                                                                                    
menu=new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
//设置触摸屏幕测试
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//设置渐入渐出效果的值
menu.setFadeDegree(0.55f);
menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
//为侧滑菜单设置布局文件
menu.setMenu(R.layout.left_menu);

小案例

准备一个布局文件作为菜单的布局文件

menu_layout.xml



    

MainActivity

package com.example.slidingmenu;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.transition.Slide;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //创建侧滑菜单
        SlidingMenu menu=new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        //设置触摸屏幕测试
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        //设置渐入渐出效果的值
        menu.setFadeDegree(0.55f);
        menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
        //为侧滑菜单设置布局文件
        menu.setMenu(R.layout.menu_layout);

    }
}

效果如?

插一个错误

运行时会报个缺v4的错误,引入即可,这里引入最新版的了...

Android开源库——SlidingMenu_第3张图片

Android开源库——SlidingMenu_第4张图片Android开源库——SlidingMenu_第5张图片Android开源库——SlidingMenu_第6张图片


SlidingMenu的常用属性

 

 

 

 

  • 设置侧滑菜单的位置:可选值LEFT , RIGHT , LEFT-RIGHT (两边都有菜单时设置)
  • menu.setMode(SlidingMenu.LEFT RIGHT);
  • 设置触摸屏幕的模式:可选RMARGIN , CONTENT
  • menu.setTouchModeAbove(SlidingMenu. TOUCHMODEMARGIN);
  • 根据dimension资源文件的ID来设置阴影的宽度
  • menu.setShadowwidthRes(R.dimen.shadow width);
  • 根据资源文件ID来设置滑动菜单的阴影效果
  •  menu.setShadowDrawable(R.drawable.shadow);
  • 下面这两个都是设置滑动菜单视图的宽度,二选一
  • menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//设置SlidingMenu离屏幕的偏移量
  • menu.setBehindWidth()//设置宽度

 

  • 设置渐入渐出效果的值
  • menu.setFadeDegree(0.35f);

 

  • 设置SlidingMenu与下方视图的移动的速度比,当为1时同时移动,取值0-1
  • menu.setBehindScrollScale(1.0f);

 

  • 设置二级菜单的阴影效果
  • menu.setSecondaryShadowDrawable(R.drawable.shadow);

 

  • 设置右边(二级)侧滑菜单
  • menu.setSecondaryMenu(R.layout.right_menu_frame);

 

  • 为侧滑菜单设置布局
  • menu.setMenu(R.layout.leftmenu);

 

  • 把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT, SLIDING WINDOW
  • menu.attachToActivity(this, SlidingMenu.SLIDING CONTENT)

设置屏幕偏移量测试

需要准备dimen.xml(values)



    16dp
    16dp
    150dp

Android开源库——SlidingMenu_第7张图片Android开源库——SlidingMenu_第8张图片Android开源库——SlidingMenu_第9张图片Android开源库——SlidingMenu_第10张图片

左一为设置了屏幕的偏移量100dp,左二为150dp,左三为200dp,最右为什么都没设置


通过SlidingMenu支持的Activity实现侧滑

SlidingMenu是可以支持通关Activity直接实现侧滑的,主要是以下四种

  1. SlidingActivity
  2. SlidingListActivity
  3. SlidingFragmentActivity
  4. SlidingPreferenceActivity

SlidingActivity

我们新建Activity,以第一种为例,区别在注释中已经给出,效果几乎一样

package com.example.slidingmenu;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity;

public class Main2Activity extends SlidingActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main2);
        //在这里进行
        setBehindContentView(R.layout.menu_layout);
        //SlidingMenu不需要再New了
        //SlidingMenu menu=new SlidingMenu(this);
        SlidingMenu menu = getSlidingMenu();
        menu.setMode(SlidingMenu.LEFT);
        //设置触摸屏幕测试
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        //设置渐入渐出效果的值
        menu.setFadeDegree(0.55f);

        //attachToActivity也不需要了
        //menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

        //不需要再为侧滑菜单设置布局文件,而是在开头...
        //menu.setMenu(R.layout.menu_layout);

        //设置相对屏幕的偏移量
        menu.setBehindOffsetRes(R.dimen.menu_offset);

        //颜色
        menu.setBackgroundColor(Color.LTGRAY);
        //速度比
        //menu.setBehindScrollScale(1.0f);

    }
}

 SlidingListActivity

如果是SlidingListActivity的话,主要是需要修改布局成为一个ListView,并提供ID

或者你自己建一个ListView的xml文件,修改setContentView(R.layout.yourxml)也可以~

Activity部分代码需要注意的和上面完全一样

如下




 


其它

剩下两种顾名思义,就是支持Fragment和Preference....


在布局文件中使用SlidingMenu

    

 

你可能感兴趣的:(安卓开发)