类似360的轨迹加密功能
最近做个东西,要用到这个所以发了下,希望能对大家有帮助,先上图:
主要实现:
1.自定义View LocusPassWordView
package com.huangcheng.lock;import com.huangcheng.lock.LocusPassWordView.OnCompleteListener;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Toast;public class LoginActivity extends Activity {private LocusPassWordView lpwv;private int num = 0;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login_activity);setTitle("系统登陆");lpwv = (LocusPassWordView) this.findViewById(R.id.mLocusPassWordView);lpwv.setOnCompleteListener(new OnCompleteListener() {@Overridepublic void onComplete(String mPassword) {// 如果密码正确,则进入主页面。if (lpwv.verifyPassword(mPassword)) {Toast.makeText(LoginActivity.this, "登陆成功!",Toast.LENGTH_SHORT).show();LoginActivity.this.finish();} else {Toast.makeText(LoginActivity.this, "密码输入错误,请重新输入",Toast.LENGTH_SHORT).show();lpwv.clearPassword();num++;if (num == 5) {new AlertDialog.Builder(LoginActivity.this).setTitle("错误").setMessage("密码识别错误超过5次!").setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialoginterface,int i) {// 按钮事件LoginActivity.this.finish();}}).show();}}}});}@Overrideprotected void onStart() {super.onStart();// 如果密码为空,则进入设置密码的界面View noSetPassword = (View) this.findViewById(R.id.tvNoSetPassword);if (lpwv.isPasswordEmpty()) {noSetPassword.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(LoginActivity.this,SetPasswordActivity.class);// 打开新的ActivitystartActivity(intent);}});noSetPassword.setVisibility(View.VISIBLE);} else {noSetPassword.setVisibility(View.GONE);}}@Overrideprotected void onStop() {super.onStop();}}
另附:源码下载地址:http://download.csdn.net/detail/hc260164797/4427820