Android經典側滑菜單SlidingMenu使用介紹
SlidingMenu是一款開源的Android開發(fā)類庫,它可以讓開發(fā)者在自己的Android App中非常便捷地創(chuàng)建側滑菜單,類似Google+, YouTube, 和Facebook的App菜單。下面先來看看SlidingMenu的效果圖。
使用方法
一個簡單的DEMO示例:
- public class SlidingExample extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setTitle(R.string.attach);
- // set the content view
- setContentView(R.layout.content);
- // configure the SlidingMenu
- 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);
- menu.setMenu(R.layout.menu);
- }
- }
XML配置方式
如果你想把SlidingMenu當做view來使用,那么xml布局文件可以寫成以下這樣:
- <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
- xmlns:sliding="http://schemas.android.com/apk/res-auto"
- android:id="@+id/slidingmenulayout"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- sliding:viewAbove="@layout/YOUR_ABOVE_VIEW"
- sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND"
- sliding:touchModeAbove="margin|fullscreen"
- sliding:behindOffset="@dimen/YOUR_OFFSET"
- sliding:behindWidth="@dimen/YOUR_WIDTH"
- sliding:behindScrollScale="@dimen/YOUR_SCALE"
- sliding:shadowDrawable="@drawable/YOUR_SHADOW"
- sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH"
- sliding:fadeEnabled="true|false"
- sliding:fadeDegree="float"
- sliding:selectorEnabled="true|false"
- sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/>
注意:你不能同時使用behindOffset和behindWidth,不然會出錯。
Android SlidingMenu側滑菜單使用介紹
現在很多android應用都有側滑菜單,效果很不錯。
GitHub上有SlidingMenu的開源庫,使用起來很方便。
SlidingMenu GitHub地址:https://github.com/jfeinstein10/SlidingMenu。GitHub上說,Sliding結合 ActionBarSherlock使用功能可以更豐富,ActionBarSherlock GitHub地址:https://github.com/JakeWharton/ActionBarSherlock
下面,介紹下SlidingMenu的使用。
(1)從GitHub上download zip到本地,解壓縮,得到其中的一個文件夾,library。
(2)Eclipse import Existing Android Code Into Workspace。 點擊項目右鍵 properties->Android,可以看到,其 Is Library。
(3)在將使用SlidingMenu的項目上點擊右鍵 properties->Android,Library下將(2)導入的項目add進去。
(4)為保證SlidingMenu庫應用到項目中成功,必須保證項目使用的libs和SlidingMenu庫使用的libs版本一致,主要是指 android-support-v4.jar。如果項目libs不存在或編譯不通過,可以嘗試新建libs文件夾,并置入android- support-v4.jar。在libs上右鍵->Build Path->Use as Source。一般可以解決。
(5)第(4)步之后,便可以在項目中直接使用SlidingMenu。
Java代碼:MainActivity:
- package com.jj.testslidingmenu;
- import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.KeyEvent;
- import android.view.Menu;
- public class MainActivity extends Activity {
- SlidingMenu slidingMenu;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- slidingMenu = new SlidingMenu(this);
- slidingMenu.setMode(SlidingMenu.LEFT);
- slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
- slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
- slidingMenu.setMenu(R.layout.slidingmenu);
- slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
- }
- @Override
- public boolean onKeyDown(int key, KeyEvent event){
- switch (key) {
- case KeyEvent.KEYCODE_MENU:
- slidingMenu.toggle(true);
- break;
- default:
- break;
- }
- return false;
- }
- }
XMl布局代碼:layout/slidingmenu.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:background="#ff999999">
- <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
- android:id="@+id/slidingmenu"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- >
- <Button
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text = "click me"/>
- </com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
- </LinearLayout>
對于SlidingMenu常用的一些屬性設置記錄如下:
- menu.setMode(SlidingMenu.LEFT);//設置左滑菜單
- menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置滑動的屏幕范圍,該設置為全屏區(qū)域都可以滑動
- menu.setShadowDrawable(R.drawable.shadow);//設置陰影圖片
- menu.setShadowWidthRes(R.dimen.shadow_width);//設置陰影圖片的寬度
- menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu劃出時主頁面顯示的剩余寬度
- menu.setBehindWidth(400);//設置SlidingMenu菜單的寬度
- menu.setFadeDegree(0.35f);//SlidingMenu滑動時的漸變程度
- menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上
- menu.setMenu(R.layout.menu_layout);//設置menu的布局文件
- menu.toggle();//動態(tài)判斷自動關閉或開啟SlidingMenu
- menu.showMenu();//顯示SlidingMenu
- menu.showContent();//顯示內容
- menu.setOnOpenListener(onOpenListener);//監(jiān)聽slidingmenu打開
- menu.setOnOpenedListener(onOpenedlistener);監(jiān)聽slidingmenu打開后
- menu.OnCloseListener(OnClosedListener);//監(jiān)聽slidingmenu關閉時事件
- menu.OnClosedListener(OnClosedListener);//監(jiān)聽slidingmenu關閉后事件
- 左右都可以劃出SlidingMenu菜單只需要設置
- menu.setMode(SlidingMenu.LEFT_RIGHT);屬性,然后設置右側菜單的布局文件
- menu.setSecondaryMenu(R.layout.menu_fram2);//設置右側菜單
- menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右側菜單的陰影圖片
原文鏈接:http://www.codeceo.com/article/android-slidingmenu-2.html
作者:碼農網小峰