自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android源碼下載:我的手勢鎖

移動開發(fā) Android
我的手勢鎖方便用戶的登錄,第一次登入時候輸入用戶名和密碼,設(shè)置手勢密碼;再次登錄時,只需要手勢密碼正確,即可登錄成功。

功能分類:工具

支持平臺:Android

運行環(huán)境:Eclipse

開發(fā)語言:Java

開發(fā)工具:Eclipse

源碼大?。?.06MB

源碼下載:http://down.51cto.com/data/1976924

源碼簡介

我的手勢鎖方便用戶的登錄,第一次登入時候輸入用戶名和密碼,設(shè)置手勢密碼;再次登錄時,只需要手勢密碼正確,即可登錄成功。

源碼運行截圖

登錄界面

提示創(chuàng)建手勢密碼

演示創(chuàng)建手勢密碼

創(chuàng)建手勢密碼

手勢密碼解鎖

源碼片段

  1. package com.zhangyx.MyGestureLock.gesture; 
  2.   
  3. import java.util.List; 
  4.   
  5. import com.lidroid.xutils.ViewUtils; 
  6. import com.lidroid.xutils.view.annotation.ViewInject; 
  7. import com.zhangyx.MyGestureLock.BaseActivity; 
  8. import com.zhangyx.MyGestureLock.LoginActivity; 
  9. import com.zhangyx.MyGestureLock.MainActivity; 
  10. import com.zhangyx.MyGestureLock.R; 
  11. import com.zhangyx.MyGestureLock.app.MyApplication; 
  12. import com.zhangyx.MyGestureLock.util.AnimationUtil; 
  13. import com.zhangyx.MyGestureLock.view.LockPatternUtils; 
  14. import com.zhangyx.MyGestureLock.view.LockPatternView; 
  15. import com.zhangyx.MyGestureLock.view.LockPatternView.Cell; 
  16.   
  17.   
  18. import android.annotation.SuppressLint; 
  19. import android.content.Intent; 
  20. import android.graphics.Color; 
  21. import android.os.Bundle; 
  22. import android.os.CountDownTimer; 
  23. import android.view.View; 
  24. import android.view.View.OnClickListener; 
  25. import android.view.animation.Animation; 
  26. import android.view.animation.AnimationUtils; 
  27. import android.widget.Button; 
  28. import android.widget.LinearLayout; 
  29. import android.widget.TextView; 
  30.   
  31. /*** 
  32.  * 解鎖登錄 
  33.  *com.zhangyx.MyGestureLock.gesture.UnlockGesturePasswordActivity 
  34.  * @author Admin-zhangyx 
  35.  * 
  36.  * create at 2015-1-16 下午3:09:47 
  37.  */ 
  38. @SuppressLint("ResourceAsColor"
  39. public class UnlockGesturePasswordActivity extends BaseActivity { 
  40.     private LockPatternView mLockPatternView; 
  41.     private int mFailedPatternAttemptsSinceLastTimeout = 0
  42.     private CountDownTimer mCountdownTimer = null
  43.     // private Handler mHandler = new Handler(); 
  44.   
  45.     private Animation mShakeAnim; 
  46.   
  47.     @ViewInject(R.id.gesturepwd_unlock_text) 
  48.     private TextView mHeadTextView; 
  49.     @ViewInject(R.id.rootView) 
  50.     private LinearLayout rootView; 
  51.     @ViewInject(R.id.changeUser) 
  52.     private Button changeUser;// 切換用戶、清除手勢鎖 
  53.   
  54.     private MyApplication app; 
  55.     @Override 
  56.     public void onCreate(Bundle savedInstanceState) { 
  57.         super.onCreate(savedInstanceState); 
  58.         setContentView(R.layout.gesturepassword_unlock); 
  59.         ViewUtils.inject(this); 
  60.         app=(MyApplication) getApplication(); 
  61.         mLockPatternView = (LockPatternView) findViewById(R.id.gesturepwd_unlock_lockview); 
  62.         mLockPatternView.setOnPatternListener(mChooseNewLockPatternListener); 
  63.         mLockPatternView.setTactileFeedbackEnabled(true); 
  64.         mShakeAnim = AnimationUtils.loadAnimation(this, R.anim.shake_x); 
  65.   
  66.         changeUser.setOnClickListener(new OnClickListener() { 
  67.   
  68.             @Override 
  69.             public void onClick(View v) { 
  70.                 // TODO Auto-generated method stub 
  71.                 // 清除 手勢文件 
  72.                 app.getLockPatternUtils().clearLock(); 
  73.                 toLoginActivity(); 
  74.             } 
  75.         }); 
  76.     } 
  77.   
  78.     @Override 
  79.     protected void onResume() { 
  80.         super.onResume(); 
  81.         // 從未創(chuàng)建過手勢時,開始創(chuàng)建---沒有記住密碼 
  82.         if (!app.getLockPatternUtils().savedPatternExists()) { 
  83.             toLoginActivity(); 
  84.         } 
  85.     } 
  86.   
  87.     private void toLoginActivity() { 
  88.         startActivity(new Intent(UnlockGesturePasswordActivity.this
  89.                 LoginActivity.class)); 
  90.         AnimationUtil 
  91.                 .finishActivityAnimation(UnlockGesturePasswordActivity.this); 
  92.     } 
  93.   
  94.     @Override 
  95.     protected void onDestroy() { 
  96.         super.onDestroy(); 
  97.         if (mCountdownTimer != null
  98.             mCountdownTimer.cancel(); 
  99.     } 
  100.   
  101.     private Runnable mClearPatternRunnable = new Runnable() { 
  102.         public void run() { 
  103.             mLockPatternView.clearPattern(); 
  104.         } 
  105.     }; 
  106.   
  107.     protected LockPatternView.OnPatternListener mChooseNewLockPatternListener = new LockPatternView.OnPatternListener() { 
  108.   
  109.         @Override 
  110.         public void onPatternStart() { 
  111.             // TODO Auto-generated method stub 
  112.             mLockPatternView.removeCallbacks(mClearPatternRunnable); 
  113.             patternInProgress(); 
  114.         } 
  115.   
  116.         public void onPatternDetected(List<cell> pattern) { 
  117.             // TODO Auto-generated method stub 
  118.             if (pattern == null
  119.                 return
  120.             if (app.getLockPatternUtils() 
  121.                     .checkPattern(pattern)) {// 解鎖成功 
  122.                 mLockPatternView 
  123.                         .setDisplayMode(LockPatternView.DisplayMode.Correct); 
  124.   
  125.                 // 解鎖成功返回需要用戶信息的頁面---- 
  126.                 loginSuccessToMainAcrtivity() ; 
  127.             } else {// 解鎖失敗-----重新登錄 
  128.                 mLockPatternView 
  129.                         .setDisplayMode(LockPatternView.DisplayMode.Wrong); 
  130.   
  131.                 if (pattern.size() >= LockPatternUtils.MIN_PATTERN_REGISTER_FAIL) { 
  132.   
  133.                     mFailedPatternAttemptsSinceLastTimeout++; 
  134.                     int retry = LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT 
  135.                             - mFailedPatternAttemptsSinceLastTimeout; 
  136.                     if (retry > 0) { 
  137.                         changeUser.setVisibility(View.VISIBLE); 
  138.                         if (retry == 0
  139.                             showToast(UnlockGesturePasswordActivity.this 
  140.                                     .getString(R.string.toastlock)); 
  141.                         mHeadTextView.setText("密碼錯誤,還可以再輸入" + retry + "次"); 
  142.                         mHeadTextView.setTextColor(Color.RED); 
  143.                         mHeadTextView.startAnimation(mShakeAnim); 
  144.                     } else { 
  145.                         // 打開新的Activity 
  146.                         // 清除 手勢文件 
  147.                         app.getLockPatternUtils().clearLock(); 
  148.                         toLoginActivity(); 
  149.                     } 
  150.                 } else { 
  151.                     showToast("輸入長度不夠,請重試"); 
  152.                 } 
  153.                 mLockPatternView.clearPattern(); 
  154.             } 
  155.         } 
  156.   
  157.         @Override 
  158.         public void onPatternCleared() { 
  159.             // TODO Auto-generated method stub 
  160.             mLockPatternView.removeCallbacks(mClearPatternRunnable); 
  161.         } 
  162.   
  163.         private void patternInProgress() { 
  164.         } 
  165.   
  166.         @Override 
  167.         public void onPatternCellAdded(List<cell> pattern) { 
  168.             // TODO Auto-generated method stub 
  169.   
  170.         } 
  171.   
  172.           
  173.     }; 
  174.   
  175.     Runnable attemptLockout = new Runnable() { 
  176.   
  177.         @Override 
  178.         public void run() { 
  179.             mLockPatternView.clearPattern(); 
  180.             mLockPatternView.setEnabled(false); 
  181.             mCountdownTimer = new CountDownTimer( 
  182.                     LockPatternUtils.FAILED_ATTEMPT_TIMEOUT_MS + 11000) { 
  183.   
  184.                 @Override 
  185.                 public void onTick(long millisUntilFinished) { 
  186.                     int secondsRemaining = (int) (millisUntilFinished / 1000) - 1
  187.                     if (secondsRemaining > 0) { 
  188.                         mHeadTextView.setText(secondsRemaining + " 秒后重試"); 
  189.                     } else { 
  190.                         mHeadTextView 
  191.                                 .setText(UnlockGesturePasswordActivity.this 
  192.                                         .getString(R.string.gesture_drawPwd)); 
  193.                         mHeadTextView.setTextColor(Color.WHITE); 
  194.                     } 
  195.   
  196.                 } 
  197.   
  198.                 @Override 
  199.                 public void onFinish() { 
  200.                     mLockPatternView.setEnabled(true); 
  201.                     mFailedPatternAttemptsSinceLastTimeout = 0
  202.                 } 
  203.             }.start(); 
  204.         } 
  205.     }; 
  206.       
  207.     // 登錄成功 
  208.     private void loginSuccessToMainAcrtivity() { 
  209.         startActivity(new Intent(UnlockGesturePasswordActivity.this
  210.                 MainActivity.class)); 
  211.         AnimationUtil 
  212.                 .finishActivityAnimation(UnlockGesturePasswordActivity.this); 
  213.     } 
  214.   
  215. </cell></cell> 

源碼下載:http://down.51cto.com/data/1976924

責(zé)任編輯:閆佳明 來源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2013-08-06 15:13:57

Android 4.3源碼

2015-02-27 15:46:09

Android源碼桌面APP

2015-01-22 14:12:40

Android源碼APP啟動引導(dǎo)

2015-01-21 15:28:16

Android源碼新浪微博

2015-02-27 16:36:21

Android源碼屏幕畫筆Demo

2015-01-15 16:25:23

Android源碼Socket通信

2015-01-22 15:44:55

Android源碼音樂播放器

2015-01-14 14:22:30

Android源碼游戲

2013-05-14 11:18:24

AIR AndroidSwipe手勢

2021-02-20 06:09:46

libtask協(xié)程鎖機制

2015-01-21 16:07:57

Android源碼驗證碼倒計時

2013-05-28 10:39:44

Android開發(fā)移動開發(fā)

2021-07-06 08:37:29

Redisson分布式

2015-02-27 16:03:26

Android源碼Bluetooth_4BLE藍(lán)牙通信

2013-05-14 11:16:26

AIR Android旋轉(zhuǎn)手勢

2020-07-15 15:09:21

Python掃雷游戲Windows

2021-06-30 14:56:12

Redisson分布式公平鎖

2014-12-30 11:04:39

懶人筆記

2021-07-02 08:51:09

Redisson分布式鎖公平鎖

2012-03-01 14:43:32

MySQLMDL
點贊
收藏

51CTO技術(shù)棧公眾號