源码介绍:android滑动关闭activity,支持左滑、右滑、底滑三种效果关闭sdk5.0以上,否则会报错。源代码在这里。需要的自己看看源代码效果:源代码片段:packageme.imid.swipebacklayout.demo;importandroid.content.Context;importandroid.content.Intent;importandroid.content.res.Resources;importandroid.net.Uri;importandroid.os.Bundle;importandroid.os.Vibrator;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.widget.RadioGroup;importme.imid.swipebacklayout.lib.SwipeBackLayout;importme.imid.swipebacklayout.lib.app.SwipeBackActivity;/***CreatedbyIssacon8/11/13.*/publicclassDemoActivityextendsSwipeBackActivityimplementsView.OnClickListener{privatestaticfinalintVIBRATE_DURATION=20;privateint[]mBgColors;privatestaticintmBgIndex=0;privateStringmKeyTrackingMode;privateRadioGroupmTrackingModeGroup;privateSwipeBackLayoutmSwipeBackLayout;//privateToolbarmToolbar;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_demo);findViews();//changeActionBarColor();mKeyTrackingMode=getString(R.string.key_tracking_mode);mSwipeBackLayout=getSwipeBackLayout();mTrackingModeGroup.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){@OverridepublicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){intedgeFlag;开关(checkedId){caseR.id.mode_left:edgeFlag=SwipeBackLayout.EDGE_LEFT;break;caseR.id.mode_right:edgeFlag=SwipeBackLayout.EDGE_RIGHT;break;caseR.id.mode_bottom:edgeFlag=SwipeBackLayout.EDGE_BOTTOM;break;default:edgeFlag=SwipeBackLayout.EDGE_ALL;}mSwipeBackLayout.setEdgeTrackingEnabled(edgeFlag);saveTrackingMode(edgeFlag);}});mSwipeBackLayout.addSwipeListener(newSwipeBackLayout.SwipeListener(){@OverridepublicvoidonScrollStateChange(intstate,floatscrollPercent){}@OverridepublicvoidonEdgeTouch(intedgeFlag){振动(VIBRATE_DURATION);}@OverridepublicvoidonScrollOverThreshold(){振动(VIBRATE_DUR@ATION);}});}OverrideprotectedvoidonResume(){super.onResume();restoreTrackingMode();}privatevoidsaveTrackingMode(intflag){PreferenceUtils.setPrefInt(getApplicationContext(),mKeyTrackingMode,flag);}privatevoidrestoreTrackingMode(){intflag=PreferenceUtils.getPrefInt(getApplicationContext(),mKeyTrackingMode,SwipeBackLayout.EDGE_LEFT);mSwipeBackLayout.setEdgeTrackingEnabled(flag);开关(flag){caseSwipeBackLayout.EDGE_LEFT:mTrackingModeGroup.check(R.id.mode_left);中断;caseSwipeBackLayout.EDGE_RIGHT:mTrackingModeGroup.check(R.id.mode_right);中断;caseSwipeBackLayout.EDGE_BOTTOM:mTrackingModeGroup.check(R.id.mode_bottom);中断;caseSwipeBackLayout。EDGE_ALL:mTrackingModeGroup.check(R.id.mode_all);break;}}privatevoidchangeActionBarColor(){//getSupportActionBar().setBackgroundDrawable(newColorDrawable(getColors()[mBgIndex]));mBgIndex++;if(mBgIndex>=getColors().length){mBgIndex=0;}}privatevoidfindViews(){//setSupportActionBar((Toolbar)findViewById(R.id.toolbar));findViewById(R.id.btn_start).setOnClickListener(this);findViewById(R.id.btn_finish).setOnClickListener(this);mTrackingModeGroup=(RadioGroup)findViewById(R.id.tracking_mode);}privateint[]getColors(){if(mBgColors==null){Resourcesresource=getResources();mBgColors=newint[]{resource.getColor(R.color.androidColorA),resource.getColor(R.color.androidColorB),resource.getColor(R.color.androidColorC),resource.getColor(R.color.androidColorD),resource.getColor(R.color.androidColorE),};}returnmBgColors;}privatevoidvibrate(longduration){Vibratorvibrator=(Vibrator)getSystemService(Context.VIBRATOR_SERVICE);long[]pattern={0,duration};vibrator.vibrate(pattern,-1);}@OverridepublicvoidonClick(Viewv){switch(v.getId()){caseR.id.btn_start:startActivity(newIntent(DemoActivity.this,DemoActivity.class));break;caseR.id.btn_finish:scrollToFinishActivity();break;}}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){getMenuInflater().inflate(R.menu.main,menu);returntrue;}@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){开关(item.getItemId()){caseR.id.action_github:Intentintent=newIntent(Intent.ACTION_VIEW);intent.setData(Uri.parse("https://github.com/Issacw0ng/SwipeBackLayout"));startActivity(intent);returntrue;default:returnsuper.onOptionsItemSelected(item);}}}下载地址:http://down.51cto.com/data/2108012
