現在很多android應用都有側滑菜單,效果很不錯。
GitHub上有SlidingMenu的開源庫,使用起來很方便。
SlidingMenu GitHub地址:https://github.com/jfeinstein10/SlidingMenu。GitHub上說,Sliding結合ActionBarSherlock使用功能可以更豐富,ActionBarSherlock GitHub地址:https://github.com/JakeWharton/ActionBarSherlock
附csdn下載地址:
SlidingMenu: http://download.csdn.net/detail/lanximu/7922377
ActionBarsherlock: http://download.csdn.net/detail/lanximu/7922383
下面,介紹下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:
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:
<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);//設置滑動的屏幕范圍,該設置為全屏區域都可以滑動
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.setOnOpenedListener(onOpenedlistener);監聽slidingmenu打開后
menu.OnCloseListener(OnClosedListener);//監聽slidingmenu關閉時事件
menu.OnClosedListener(OnClosedListener);//監聽slidingmenu關閉后事件
左右都可以劃出SlidingMenu菜單只需要設置
menu.setMode(SlidingMenu.LEFT_RIGHT);屬性,然后設置右側菜單的布局文件
menu.setSecondaryMenu(R.layout.menu_fram2);//設置右側菜單
menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右側菜單的陰影圖片
新聞熱點
疑難解答
圖片精選