package com.andbase.demo.activity;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Interpolator;
import com.ab.activity.AbActivity;
import com.ab.view.slidingmenu.SlidingMenu;
import com.ab.view.slidingmenu.SlidingMenu.CanvasTransformer;
import com.ab.view.titlebar.AbTitleBar;
import com.andbase.R;
public class SlidingMenuSlideActivity extends AbActivity {
private SlidingMenu menu;
private static Interpolator interp = new Interpolator() {
@Override
public float getInterpolation(float t) {
t -= 1.0f;
return t * t * t + 1.0f;
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setAbContentView(R.layout.sliding_menu_content);
AbTitleBar mAbTitleBar = this.getTitleBar();
mAbTitleBar.setTitleText(R.string.sliding_menu_name);
mAbTitleBar.setLogo(R.drawable.button_selector_back);
mAbTitleBar.setTitleBarBackground(R.drawable.top_bg);
mAbTitleBar.setTitleTextMargin(10, 0, 0, 0);
mAbTitleBar.setLogoLine(R.drawable.line);
mAbTitleBar.getLogoView().setBackgroundResource(R.drawable.button_selector_menu);
//主视图的Fragment添加
getFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, new FragmentLoad())
.commit();
//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视图的Fragment添加
menu.setMenu(R.layout.sliding_menu_menu);
getFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame, new FragmentLoad())
.commit();
//动画配置
menu.setBehindCanvasTransformer(new CanvasTransformer() {
@Override
public void transformCanvas(Canvas canvas, float percentOpen) {
//将画布默认的黑背景替换掉
canvas.drawColor(SlidingMenuSlideActivity.this.getResources().getColor(R.color.gray_white));
canvas.translate(0, canvas.getHeight()*(1-interp.getInterpolation(percentOpen)));
}
});
mAbTitleBar.getLogoView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (menu.isMenuShowing()) {
menu.showContent();
} else {
menu.showMenu();
}
}
});
}
@Override
public void onBackPressed() {
if (menu.isMenuShowing()) {
menu.showContent();
} else {
super.onBackPressed();
}
}
}