Android仿易信界面SlidingMenu左右滑动

来源:互联网 发布:docker nginx配置文件 编辑:程序博客网 时间:2024/05/16 19:55

简介

易信是一个操作比较简介的界面。类似的SlidingMenu还有百度影音、快播等等。下面就是一个模仿易信的一个界面,先看一下效果图

项目源代码下载:https://github.com/nuptboyzhb/SlidingMenuDemoYiXin

或者直接git : $ git clone https://github.com/nuptboyzhb/SlidingMenuDemoYiXin.git


首页


左边滑动效果


右边滑动效果

主要代码:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package edu.njupt.zhb.slidemenu;  
  2. import edu.njupt.zhb.slidemenu.R;  
  3.   
  4. import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;  
  5. import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;  
  6. import android.os.Bundle;  
  7. import android.support.v4.app.Fragment;  
  8. import android.support.v4.app.FragmentTransaction;  
  9. import android.view.View;  
  10. import android.view.View.OnClickListener;  
  11. import android.widget.ImageButton;  
  12.   
  13.   
  14. public class MainActivity extends SlidingFragmentActivity implements OnClickListener{  
  15.     protected SlidingMenu leftRightSlidingMenu;  
  16.     private ImageButton ivTitleBtnLeft;  
  17.     private ImageButton ivTitleBtnRight;  
  18.     private Fragment mContent;  
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         initLeftRightSlidingMenu();  
  23.         setContentView(R.layout.activity_main);  
  24.         initView();  
  25.     }  
  26.       
  27.       
  28.     private void initView() {  
  29.         ivTitleBtnLeft = (ImageButton)this.findViewById(R.id.ivTitleBtnLeft);  
  30.         ivTitleBtnLeft.setOnClickListener(this);  
  31.         ivTitleBtnRight = (ImageButton)this.findViewById(R.id.ivTitleBtnRight);  
  32.         ivTitleBtnRight.setOnClickListener(this);  
  33.     }  
  34.   
  35.     private void initLeftRightSlidingMenu() {  
  36.         mContent = new FragmentDefaultMain();  
  37.         getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mContent).commit();  
  38.         setBehindContentView(R.layout.main_left_layout);  
  39.         FragmentTransaction leftFragementTransaction = getSupportFragmentManager().beginTransaction();  
  40.         Fragment leftFrag = new LeftSlidingMenuFragment();  
  41.         leftFragementTransaction.replace(R.id.main_left_fragment, leftFrag);  
  42.         leftFragementTransaction.commit();  
  43.         // customize the SlidingMenu  
  44.         leftRightSlidingMenu = getSlidingMenu();  
  45.         leftRightSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);// 设置是左滑还是右滑,还是左右都可以滑,我这里只做了左滑  
  46.         leftRightSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);// 设置菜单宽度  
  47.         leftRightSlidingMenu.setFadeDegree(0.35f);// 设置淡入淡出的比例  
  48.         leftRightSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置手势模式  
  49.         leftRightSlidingMenu.setShadowDrawable(R.drawable.shadow);// 设置左菜单阴影图片  
  50.         leftRightSlidingMenu.setFadeEnabled(true);// 设置滑动时菜单的是否淡入淡出  
  51.         leftRightSlidingMenu.setBehindScrollScale(0.333f);// 设置滑动时拖拽效果  
  52.           
  53.         leftRightSlidingMenu.setSecondaryMenu(R.layout.main_right_layout);  
  54.         FragmentTransaction rightFragementTransaction = getSupportFragmentManager().beginTransaction();  
  55.         Fragment rightFrag = new RightSlidingMenuFragment();  
  56.         leftFragementTransaction.replace(R.id.main_right_fragment, rightFrag);  
  57.         rightFragementTransaction.commit();  
  58.     }  
  59.       
  60.     @Override  
  61.     public void onClick(View v) {  
  62.         switch (v.getId()) {  
  63.         case R.id.ivTitleBtnLeft:  
  64.             leftRightSlidingMenu.showMenu();  
  65.             break;  
  66.         case R.id.ivTitleBtnRight:  
  67.             leftRightSlidingMenu.showSecondaryMenu(true);  
  68.             break;  
  69.         default:  
  70.             break;  
  71.         }  
  72.           
  73.     }  
  74.    
  75.   
  76.     /** 
  77.      *    左侧菜单点击切换首页的内容 
  78.      */  
  79.       
  80.     public void switchContent(Fragment fragment) {  
  81.         mContent = fragment;  
  82.         getSupportFragmentManager()  
  83.         .beginTransaction()  
  84.         .replace(R.id.content_frame, fragment)  
  85.         .commit();  
  86.         getSlidingMenu().showContent();  
  87.     }  
  88.       
  89.       
  90. }  

代码结构
源代码下载:https://github.com/nuptboyzhb/SlidingMenuDemoYiXin
0 0
原创粉丝点击