当前位置: 首页 > 科技观察

Android源码下载:我的手势锁

时间:2023-03-16 00:49:43 科技观察

功能分类:工具支持平台:Android运行环境:Eclipse开发语言:Java开发工具:Eclipse源码大小:1.06MB源码下载:http://down.51cto.com/data/1976924源码介绍我的手势锁是方便用户登录,首次登录时输入用户名和密码,并设置手势密码;再次登录时,只有手势密码正确才能登录成功。源码运行截图登录界面提示创建手势密码Demo创建手势密码创建手势密码手势密码解锁源代码片段MyGestureLock.MainActivity;importcom.zhangyx.MyGestureLock.R;importcom.zhangyx.MyGestureLock.app.MyApplication;importcom.zhangy.MyGestureLock.util.AnimationUtil;importcom.zhangyx.MyGestureLock.view.LockPatternUtils;importcom.zhangyx.MyGestureLock.view。LockPatternView;importcom.zhangyx.MyGestureLock.view.LockPatternView.Cell;importandroid.annotation.SuppressLint;importandroid.Intent。;importandroid.graphics.Color;importandroid.os.Bundle;importandroid.os.CountDownTimer;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.animation.Animation;importandroid.view.animation.AnimationUtils;importandroid.widget.Button;importandroid.widget.LinearLayout;importandroid.widget.TextView;/****解锁登录*com.zhangyx.MyGestureLock.gesture.UnlockGesturePasswordActivity*@authorAdmin-zhangyx**createat2015-1-16下午3:09:47*/@SuppressLint("ResourceAsColor")publicclassUnlockGesturePasswordActivityextendsBaseActivity{privateLockPatternViewmLockPatternView;privateintmFailedPatternAttemptsSinceLastTimeout=0;privateCountDownTimermCountdownTimer=null;//privateHandlermHandler=newHandler();privateAnimationmShakeAnim;@ViewInject(R.id.gesturepwd_unlock_text)privateTextViewmHeadTextView;@ViewInject(R.id.rootView)privateLinearLayoutrootView;@ViewInject(R.id.changeUser)privateButtonchangeUser;//切换用户、清除手势锁privateMyApplicationapp;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.gesturepassword_unlock);ViewUtils.inject(this);app=(MyApplication)getApplication();mLockPatternView=(LockPatternView)findViewById(R.id.gesturepwd_unlock_lockview);mLockPatternView.setOnPatternListener(mChooseNewLockPatternListener);mLockPatternView.setTactileback();mShakeAnim=AnimationUtils.loadAnimation(this,R.anim.shake_x);changeUser.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstub//清除手势文件app.getLockPatternUtils().clearLock();toLoginActivity();}});}@OverrideprotectedvoidonResume(){super.onResume();//手势从未被创建时,开始创建---不记住密码if(!app.getLockPatternUtils().savedPatternExists()){toLoginActivity();}}privatevoidtoLoginActivity(){startActivity(newIntent(UnlockGesturePasswordActivity.this,LoginActivity.class));AnimationUtil.finishActivityAnimation(UnlockGesturePasswordActivity.this);}@OverrideprotectedvoidonDestroy(){super().onDestroy(){超级(摧毁();mCountdownTimer!=null)mCountdownTimer。cancel();}privateRunnablemClearPatternRunnable=newRunnable(){publicvoidrun(){mLockPatternView.clearPattern();}};protectedLockPatternView.OnPatternListenermChooseNewLockPatternListener=newLockPatternView.OnPatternListener(){@OverridepublicvoidonPatternStart(){//TODOAuto-generatedmethodPatternListenermChooseNewLockPatternListener=newLockPatternView.OnPatternListener(){@OverridepublicvoidonPatternStart(){//TODOAuto-generatedmethodPatternListenrView.OnPatternListener();patternInProgress();}publicvoidonPatternDetected(Listpattern){//TODOAuto-generatedmethodstubif(pattern==null)return;if(app.getLockPatternUtils().checkPattern(pattern)){//解锁成功mLockPatternView.setDisplayMode(LockPatternView.DisplayMode.Correct);//解锁成功返回需要用户信息的页面----loginSuccessToMainAcrtivity();}else{//解锁失败----重新登录mLockPatternView.setDisplayMode(LockPatternView.DisplayMode.错误);if(pattern.size()>=LockPatternUtils.MIN_PATTERN_REGISTER_FAIL){mFailedPatternAttemptsSinceLastTimeout++;intretry=LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT-mFailedPatternAttemptsSinceLastTimeout;if(retry>0){changeUser.setVisibility(View.VISIBLE);if(retry==0)showToast(UnlockGesturePasswordActivity.this.getString(R.string.toastlock));mHeadTextView.setText("密码错误,也可以输入"+retry+"次");mHeadTextView.setTextColor(Color.RED);mHeadTextView.startAnimation(mShakeAnim);}else{//打开一个新的Activity//清除手势文件app.getLockPatternUtils().clearLock();toLoginActivity();}}else{showToast("输入长度不足,请重试");}mLockPatternView.clearPattern();}}@OverridepublicvoidonPatternCleared(){//TODOAuto-generatedmethodstubmLockPatternView.removeCallbacks(mClearPatternRunnable);}privatevoidpatternInProgress(){}@OverridepublicvoidonPatternPatternCleared(){//TODOAuto生成的方法stubmLockPatternView.removeCallbacks(mClearPatternRunnable);}privatevoidpatternInProgress(){}@OverridepublicvoidonPatternPatternCleared(){//TODOAuto生成的方法stubmLockPatternView.removeCallbacks(mClearPatternRunnable);}privatevoidpatternInProgress(){}@OverridepublicPvoidonPatternatternCleared(){>pattern){//TODOAuto-generatedmethodstub}};RunnableattemptLockout=newRunnable(){@Overridepublicvoidrun(){mLockPatternView.clearPattern();mLockPatternView.setEnabled(false);mCountdownTimer=newCountDownTimer(LockPatternUtils.FAILED_ATTEMPT_TIMEOUT0_MS+1)在Tick(longmillisUntilFinished){intsecondsRe上覆盖公共无效maining=(int)(millisUntilFinished/1000)-1;if(secondsRemaining>0){mHeadTextView.setText(secondsRemaining+"秒后重试");}else{mHeadTextView.setText(UnlockGesturePasswordActivity.this.getString(R.string.gesture_drawPwd));mHeadTextView.setTextColor(Color.WHITE);}}@OverridepublicvoidonFinish(){mLockPatternView.setEnabled(true);mFailedPatternAttemptsSinceLastTimeout=0;}}.start();}};//登录成功privatevoidloginSuccessToMainAcrtivity(){startActivity(newIntent(UnlockGesturePasswordActivity.this,MainActivity.class));AnimationUtil.finishActivityAnimation(UnlockGesturePasswordActivity.this);}}源码下载:http://down.51cto.com/data/1976924