開源項目SlidingMenu簡單使用指南

一.簡介
SlidingMenu能很方便的實現側滑菜單欄,很多有名的軟件都是用這種效果。如Evernote、Google+、Foursquare等,國內的QQ,豌豆夾,人人,360手機助手等都使用SlidingMenu的界面方案。


二.準備工作

1.下載開源項目SlidingMenu,地址:https://github.com/jfeinstein10/SlidingMenu
2.下載它的依賴項目ActionBarSharlock,地址:https://github.com/JakeWharton/ActionBarSherlock 
3.把這兩個項目包含到你的項目中

記得把三個項目的android-support-v4統一一下,最簡單的方法就是刪了其他兩個,把自己的複製粘貼過去。
廢話不多,直接上源碼.

三.源碼

1.drawable文件夾下建立shadow.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:endColor="#33000000"
        android:centerColor="#11000000"
        android:startColor="#00000000" />

</shape>
2.value文件夾下建立dimens.xml,這個是菜單的各個配置,自己嘗試下改變值。
<resources>

    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="slidingmenu_offset">60dp</dimen>
    <dimen name="list_padding">10dp</dimen>
    <dimen name="shadow_width">15dp</dimen>

    <integer name="num_cols">1</integer>

</resources>
3.這個是你的菜單的視圖 menu.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:background="#77B72C"
    android:orientation="vertical" >


</LinearLayout>
4.最後,在你需要添加菜單的activity里加上短短几行代碼即可。
<pre name="code" class="java">private SlidingMenu menu;	

@Override
protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
//設置菜單呢內容
menu = new SlidingMenu(this);
//設置菜單在右邊
menu.setMode(SlidingMenu.RIGHT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
menu.setShadowDrawable(R.drawable.shadow);
menu.setShadowWidthRes(R.dimen.shadow_width);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setBehindWidth(800);
menu.setFadeDegree(0.35f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
menu.setMenu(R.layout.menu);// 就是普通的layout佈局
mTransformer = new CanvasTransformer() {
@Override
public void transformCanvas(Canvas canvas, float percentOpen) {
canvas.scale(percentOpen, 1, 0, 0);
}
};
menu.setBehindCanvasTransformer(mTransformer);
}




5.相關配置
menu.setMode(SlidingMenu.LEFT);//設置左滑菜單
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置滑動的屏幕範圍,該設置爲全屏區域都可以滑動
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();//動態判斷自動關閉或開啓SlidingMenu
menu.showMenu();//顯示SlidingMenu
menu.showContent();//顯示內容
menu.setOnOpenListener(onOpenListener);//監聽slidingmenu打開
關於關閉menu有兩個監聽,簡單的來說,對於menu close事件,一個是when,一個是after 
menu.OnClosedListener(OnClosedListener);//監聽slidingmenu關閉時事件
menu.OnClosedListener(OnClosedListener);//監聽slidingmenu關閉後事件
左右都可以劃出SlidingMenu菜單隻需要設置
menu.setMode(SlidingMenu.LEFT_RIGHT);屬性,然後設置右側菜單的佈局文件
menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右側菜單的陰影圖片




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章