2013.12.04 (3)——— android SlidingMenu之PropertiesActivity
2013.12.04 (3)——— android SlidingMenu之PropertiesActivity
package com.jeremyfeinstein.slidingmenu.example;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;public class PropertiesActivity extends BaseActivity {public PropertiesActivity() {super(R.string.properties);}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setSlidingActionBarEnabled(true);setContentView(R.layout.properties);// left and right modesRadioGroup mode = (RadioGroup) findViewById(R.id.mode);mode.check(R.id.left);mode.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {SlidingMenu sm = getSlidingMenu();switch (checkedId) {case R.id.left:sm.setMode(SlidingMenu.LEFT);sm.setShadowDrawable(R.drawable.shadow);break;case R.id.right:sm.setMode(SlidingMenu.RIGHT);sm.setShadowDrawable(R.drawable.shadowright);break;case R.id.left_right:sm.setMode(SlidingMenu.LEFT_RIGHT);sm.setSecondaryMenu(R.layout.menu_frame_two);getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame_two, new SampleListFragment()).commit();sm.setSecondaryShadowDrawable(R.drawable.shadowright);sm.setShadowDrawable(R.drawable.shadow);}}});// touch mode stuffRadioGroup touchAbove = (RadioGroup) findViewById(R.id.touch_above);touchAbove.check(R.id.touch_above_full);touchAbove.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {switch (checkedId) {case R.id.touch_above_full:getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);break;case R.id.touch_above_margin:getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);break;case R.id.touch_above_none:getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);break;}}});// scroll scale stuffSeekBar scrollScale = (SeekBar) findViewById(R.id.scroll_scale);scrollScale.setMax(1000);scrollScale.setProgress(333);scrollScale.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { }@Overridepublic void onStartTrackingTouch(SeekBar seekBar) { }@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {getSlidingMenu().setBehindScrollScale((float) seekBar.getProgress()/seekBar.getMax());}});// behind width stuffSeekBar behindWidth = (SeekBar) findViewById(R.id.behind_width);behindWidth.setMax(1000);behindWidth.setProgress(750);behindWidth.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { }@Overridepublic void onStartTrackingTouch(SeekBar seekBar) { }@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {float percent = (float) seekBar.getProgress()/seekBar.getMax();getSlidingMenu().setBehindWidth((int) (percent * getSlidingMenu().getWidth()));getSlidingMenu().requestLayout();}});// shadow stuffCheckBox shadowEnabled = (CheckBox) findViewById(R.id.shadow_enabled);shadowEnabled.setChecked(true);shadowEnabled.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked)getSlidingMenu().setShadowDrawable(getSlidingMenu().getMode() == SlidingMenu.LEFT ? R.drawable.shadow : R.drawable.shadowright);elsegetSlidingMenu().setShadowDrawable(null);}});SeekBar shadowWidth = (SeekBar) findViewById(R.id.shadow_width);shadowWidth.setMax(1000);shadowWidth.setProgress(75);shadowWidth.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { }@Overridepublic void onStartTrackingTouch(SeekBar seekBar) { }@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {float percent = (float) seekBar.getProgress()/ (float) seekBar.getMax();int width = (int) (percent * (float) getSlidingMenu().getWidth());getSlidingMenu().setShadowWidth(width);getSlidingMenu().invalidate();}});// fading stuffCheckBox fadeEnabled = (CheckBox) findViewById(R.id.fade_enabled);fadeEnabled.setChecked(true);fadeEnabled.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {getSlidingMenu().setFadeEnabled(isChecked);}});SeekBar fadeDeg = (SeekBar) findViewById(R.id.fade_degree);fadeDeg.setMax(1000);fadeDeg.setProgress(666);fadeDeg.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { }@Overridepublic void onStartTrackingTouch(SeekBar seekBar) { }@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {getSlidingMenu().setFadeDegree((float) seekBar.getProgress()/seekBar.getMax());}});}}
SlidingMenu sm = getSlidingMenu();
/** Constant value for use with setMode(). Puts the menu to the left of the content. */public static final int LEFT = 0;/** Constant value for use with setMode(). Puts the menu to the right of the content. */public static final int RIGHT = 1;/** Constant value for use with setMode(). Puts menus to the left and right of the content. */public static final int LEFT_RIGHT = 2;
setBehindContentView(R.layout.menu_frame);FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();mFrag = new SampleListFragment();t.replace(R.id.menu_frame, mFrag);t.commit();
sm.setMode(SlidingMenu.LEFT_RIGHT);sm.setSecondaryMenu(R.layout.menu_frame_two);getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame_two, new SampleListFragment()).commit();
/** Constant value for use with setTouchModeAbove(). Allows the SlidingMenu to be opened with a swipe * gesture on the screen's margin */public static final int TOUCHMODE_MARGIN = 0;//边缘/** Constant value for use with setTouchModeAbove(). Allows the SlidingMenu to be opened with a swipe * gesture anywhere on the screen */public static final int TOUCHMODE_FULLSCREEN = 1;//全屏/** Constant value for use with setTouchModeAbove(). Denies the SlidingMenu to be opened with a swipe * gesture */public static final int TOUCHMODE_NONE = 2;//关闭