標籤:android style blog http io ar color os sp
Jeff Lee blog: http://www.cnblogs.com/Alandre/ (泥沙磚瓦漿木匠),retain the url when reproduced ! Thanks
:
求資源到首頁上部加群即可。
一. SlidingMenu簡介
github:https://github.com/jfeinstein10/SlidingMenu
官網上面的簡介上翻譯的:
SlidingMenu是能讓開發人員很容易的開發有滑動菜單App(像Google+,YouTube,Facebook)的開源android庫。只要引入這個開源庫的許可代碼,就可以很容易免費的用在你想要滑動菜單的app。如所示:
二.官方小例子
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<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"/> |
官方文檔翻譯如下:
- viewAbove - 在菜單之上的布局引用
- viewBehind - 在菜單之下的布局引用
- touchModeAbove - 指那一部分螢幕觸摸後視圖顯示
- behindOffset - 菜單顯示時,主體顯示多少(單位像素)
- behindWidth - 菜單顯示,主體顯示的寬。預設全屏
- behindScrollScale - 菜單顯示的滾動設定
- shadowDrawable - 滾動陰影設定
- shadowWidth - 滾動陰影的寬度
- fadeEnabled - 滑動時菜單的是否漸層
- fadeDegree - 滑動時的漸層程度
三.實現滑動菜單
主要結構:MainAct為主入口,然後各個fragment實現各自內容動作。
MainAct.java
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
public class MainAct extends FragmentActivity { private SlidingMenu menu; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.slidingmenu_main); menu = new SlidingMenu(this); menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width); menu.setShadowDrawable(R.drawable.slidingmenu_shadow); menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); menu.setFadeDegree(0.35f); menu.setBehindOffset(dm.widthPixels*50/100); menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); menu.setMode(SlidingMenu.LEFT_RIGHT);//這裡模式設定為左右都有菜單,RIGHT顯示右菜單,LEFT顯示左菜單,LEFT_RIGH顯示左右菜單 menu.setContent(R.layout.slidingmenu_content); menu.setMenu(R.layout.slidingmenu_menu); menu.setSecondaryMenu(R.layout.slidingmenu_menu_2); menu.setSecondaryShadowDrawable(R.drawable.slidingmenu_shadow_2); getSupportFragmentManager() .beginTransaction() .replace(R.id.slidingmenu_content, new MainFragment(menu)) .commit();//設定首頁面內容 getSupportFragmentManager() .beginTransaction() .replace(R.id.slidingmenu_menu, new MainLeftFragment()) .commit();//設定左菜單內容 getSupportFragmentManager() .beginTransaction() .replace(R.id.slidingmenu_menu_2, new MainRightFragment(menu)) .commit();//設定右菜單內容 } } |
總結:用則簡單則難
Android UI(三)SlidingMenu實現滑動菜單(詳細 官方)