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 Jenkins中配置gradle项目遇到的问题
  2. android source code下载源代码时出错
  3. 网页源代码查看器
  4. Android小项目之欢迎滑动页面(页面布局&底部点点)
  5. Android source code[ 源代码]下载,问题和解决办法
  6. 在Eclipse 中关联android sdk 源代码
  7. 启动 flutter项目时报Could not find com.android.tools.build:g
  8. 完成android的manven项目管理
  9. 一些 android 项目

随机推荐

  1. android:inputType参数类型说明
  2. Android跑马灯
  3. Android去除题栏
  4. android 测试初探(android test)
  5. Android下修改SeekBar样式
  6. android:inputType参数类型说明
  7. Android(安卓)SDK4.0离线快速安装方法
  8. Android中的webview的进度条
  9. Android下修改SeekBar样式
  10. android---自带样式