簡介
易信是一個操作比較簡介的界面。類似的SlidingMenu還有百度影音、快播等等。下面就是一個模仿易信的一個界面,先看一下效果圖
首頁
左邊滑動效果
右邊滑動效果
主要代碼:
package edu.njupt.zhb.slidemenu; import edu.njupt.zhb.slidemenu.R; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; public class MainActivity extends SlidingFragmentActivity implements OnClickListener{ protected SlidingMenu leftRightSlidingMenu; private ImageButton ivTitleBtnLeft; private ImageButton ivTitleBtnRight; private Fragment mContent; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initLeftRightSlidingMenu(); setContentView(R.layout.activity_main); initView(); } private void initView() { ivTitleBtnLeft = (ImageButton)this.findViewById(R.id.ivTitleBtnLeft); ivTitleBtnLeft.setOnClickListener(this); ivTitleBtnRight = (ImageButton)this.findViewById(R.id.ivTitleBtnRight); ivTitleBtnRight.setOnClickListener(this); } private void initLeftRightSlidingMenu() { mContent = new FragmentDefaultMain(); getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mContent).commit(); setBehindContentView(R.layout.main_left_layout); FragmentTransaction leftFragementTransaction = getSupportFragmentManager().beginTransaction(); Fragment leftFrag = new LeftSlidingMenuFragment(); leftFragementTransaction.replace(R.id.main_left_fragment, leftFrag); leftFragementTransaction.commit(); // customize the SlidingMenu leftRightSlidingMenu = getSlidingMenu(); leftRightSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);// 設置是左滑還是右滑,還是左右都可以滑,我這裡隻做瞭左滑 leftRightSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);// 設置菜單寬度 leftRightSlidingMenu.setFadeDegree(0.35f);// 設置淡入淡出的比例 leftRightSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置手勢模式 leftRightSlidingMenu.setShadowDrawable(R.drawable.shadow);// 設置左菜單陰影圖片 leftRightSlidingMenu.setFadeEnabled(true);// 設置滑動時菜單的是否淡入淡出 leftRightSlidingMenu.setBehindScrollScale(0.333f);// 設置滑動時拖拽效果 leftRightSlidingMenu.setSecondaryMenu(R.layout.main_right_layout); FragmentTransaction rightFragementTransaction = getSupportFragmentManager().beginTransaction(); Fragment rightFrag = new RightSlidingMenuFragment(); leftFragementTransaction.replace(R.id.main_right_fragment, rightFrag); rightFragementTransaction.commit(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.ivTitleBtnLeft: leftRightSlidingMenu.showMenu(); break; case R.id.ivTitleBtnRight: leftRightSlidingMenu.showSecondaryMenu(true); break; default: break; } } /** * 左側菜單點擊切換首頁的內容 */ public void switchContent(Fragment fragment) { mContent = fragment; getSupportFragmentManager() .beginTransaction() .replace(R.id.content_frame, fragment) .commit(); getSlidingMenu().showContent(); } }
代碼結構 源代碼下載:https://github.com/nuptboyzhb/SlidingMenuDemoYiXin 未經允許不得用於商業目的