1.主框架界面的源代码

package com.special.ResideMenuDemo;


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

import com.special.ResideMenu.ResideMenu;
import com.special.ResideMenu.ResideMenuItem;

public class MenuActivity extends FragmentActivity implements OnClickListener {

private ResideMenu resideMenu;
private MenuActivity mContext;
/**
* left ResideMenuItem
*/
private ResideMenuItem itemHome;
/**
* left ResideMenuItem
*/
private ResideMenuItem itemProfile;
/**
* right ResideMenuItem
*/
private ResideMenuItem itemCalendar;
/**
* right ResideMenuItem
*/
private ResideMenuItem itemSettings;

/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mContext = this;
setUpMenu();
changeFragment(new HomeFragment());
}

private void setUpMenu() {

// attach to current activity;
resideMenu = new ResideMenu(this);
resideMenu.setBackground(R.drawable.menu_background);
resideMenu.attachToActivity(this);
resideMenu.setMenuListener(menuListener);
// valid scale factor is between 0.0f and 1.0f. leftmenu'width is
// 150dip.
resideMenu.setScaleValue(0.7f);

// create menu items;
itemHome = new ResideMenuItem(this, R.drawable.icon_home, "Home");
itemProfile = new ResideMenuItem(this, R.drawable.icon_profile,
"Profile");
itemCalendar = new ResideMenuItem(this, R.drawable.icon_calendar,
"Calendar");
itemSettings = new ResideMenuItem(this, R.drawable.icon_settings,
"Settings");

itemHome.setOnClickListener(this);
itemProfile.setOnClickListener(this);
itemCalendar.setOnClickListener(this);
itemSettings.setOnClickListener(this);

resideMenu.addMenuItem(itemHome, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(itemProfile, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(itemCalendar, ResideMenu.DIRECTION_RIGHT);
resideMenu.addMenuItem(itemSettings, ResideMenu.DIRECTION_RIGHT);

// You can disable a direction by setting ->
// resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);

findViewById(R.id.title_bar_left_menu).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);
}
});
findViewById(R.id.title_bar_right_menu).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
resideMenu.openMenu(ResideMenu.DIRECTION_RIGHT);
}
});
}

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return resideMenu.dispatchTouchEvent(ev);
}

@Override
public void onClick(View view) {

if (view == itemHome) {
changeFragment(new HomeFragment());
} else if (view == itemProfile) {
changeFragment(new ProfileFragment());
} else if (view == itemCalendar) {
changeFragment(new CalendarFragment());
} else if (view == itemSettings) {
changeFragment(new SettingsFragment());
}

resideMenu.closeMenu();
}

private ResideMenu.OnMenuListener menuListener = new ResideMenu.OnMenuListener() {
@Override
public void openMenu() {
Toast.makeText(mContext, "Menu is opened!", Toast.LENGTH_SHORT)
.show();
}

@Override
public void closeMenu() {
Toast.makeText(mContext, "Menu is closed!", Toast.LENGTH_SHORT)
.show();
}
};

private void changeFragment(Fragment targetFragment) {
resideMenu.clearIgnoredViewList();
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_fragment, targetFragment, "fragment")
.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit();
}

// What good method is to access resideMenu?
public ResideMenu getResideMenu() {
return resideMenu;
}

}

2.然后要调用一个项目库 ResideMenu 这个项目库来实现里面的方法。

3.大家都懂的,说了不如看Demo,给个Demo下载地址:http://download.csdn.net/detail/baijianghai/7797355

4.也希望大家相互多多学习!

更多相关文章

  1. Android官方教程翻译(1)——创建第一个Android应用
  2. Android(安卓)调用相机和调用图库
  3. android 导入第三方库出现java.lang.NoClassDefFoundError
  4. android Camera模块分析
  5. android source code下载源代码时出错
  6. android >WebView 实现 JS , JAVA 互调
  7. Android(安卓)Jenkins中配置gradle项目遇到的问题
  8. Android调用百度地图API实现――实时定位代码
  9. Android(安卓)之 setContentView 源码阅读

随机推荐

  1. Android(安卓)Provider用法
  2. Android(安卓)手机Root 原理解析
  3. Android下的binder机制和IPC原理
  4. Android实现一个通用的PopupWindow
  5. 修改Android(安卓)Studio新建工程时repos
  6. Ubuntu failed to run the android sdk m
  7. Android(安卓)使用MotionLayout实现动画
  8. 闹钟AlarmAndMusic 和支持播放音乐效果的
  9. Android中view绘制常用知识
  10. Android中AIDL的实现使用