PassCode - 打造一个简单易用的安全锁类库
来源:互联网 发布:淘宝全屏海价格 编辑:程序博客网 时间:2024/05/20 06:53
PassCode
现在,大多数应用都会有相关的安全码验证操作,其主要目的是当操作一些关乎用户隐私和数据安全时会触发访问权限。借这次项目有这方面的需求,我也小试牛刀,封装一个 PassCode Library, 其核心类为 PassCodeView,同时支持接入系统软键盘和自定义键盘两种方式。文章末尾有源码下载。
一. 运行效果
1. 自定义键盘
2. 系统键盘
二. 使用介绍
1. 快速入门
- 创建布局文件 activity_main.xml,同时添加 PassCodeView 控件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/shape_bg" android:fitsSystemWindows="true" tools:context="com.anenn.demo.SimplePassCodeActivity"> <TextView android:id="@+id/tvTip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="92dp" android:text="@string/pass_code" android:textColor="#ffffff" android:textSize="18sp" /> <com.anenn.passcode.PassCodeView android:id="@+id/passCodeView" android:layout_width="120dp" android:layout_height="25dp" android:layout_below="@+id/tvTip" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" android:gravity="center_vertical" app:circleColor="@color/passCode_circle_color" app:circleRadius="5dp" app:passCodeLength="4" app:strokeColor="@color/passCode_stroke_color" app:strokeWidth="1.5dp" /></RelativeLayout>
- 打开 Actiivty,申明 PassCode 控件并设置监听事件
PassCodeView mPassCodeView = (PassCodeView) findViewById(R.id.passCodeView);mPassCodeView.setOnPassCodeFillListener(new OnPassCodeFillListener() { @Override public void passCodeFill(String passCode) { if (mPassCode == null) { mPassCode = passCode; } else if (mPassCode.equals(passCode)) { mPassCode = null; Toast.makeText(SimplePassCodeActivity.this, "Passcode is matched, welcome!", Toast.LENGTH_LONG).show(); } else { mPassCode = null; Toast.makeText(SimplePassCodeActivity.this, "Passcode is not matched, please try again!", Toast.LENGTH_LONG).show(); } }});
2. 功能分析
PassCodeView 控件具有如下一些自定义的属性:
// Custom Attributesprivate int strokeColor; // 边框颜色private int strokeWidth; // 边框厚度private int circleColor; // 实心圆的颜色private int circleRadius; // 实心圆的半径private int passCodeLength; // 密码长度private boolean autoCleanPassCode; // 是否允许自动清除private boolean isEditable; // 是否可编辑
这里对两个属性做一下说明:
- autoCleanPassCode: 表示当用户输入的密码长度等于设置的密码长度时,此时是否触发清除界面密码数据事件
- isEditable: 表示当使用手机默认的输入法时,默认弹出软键盘;在使用自定义输入法时,该位必须手动置为 false。
PassCodeView 包含有一个事件回调接口 OnPassCodeFillListener,其作用是当用户输入的密码位数等于指定密码长度时,如果设置了 OnPassCodeFillListener,则会调用其 passcodeFill(String passCode) 方法。
InputMethodView 是一个自定义的键盘控件,在该类中已经封装了事件触发及响应方法,开发者只需通过 InputMethodView 的 setupPassCode() 方法,将 PassCodeView 对象与 InputMethodView 进行关联就可以正常使用了。
使用起来很简单,原理也不复杂。详情请看源码,喜欢的请给个 Star。
0 0
- PassCode - 打造一个简单易用的安全锁类库
- 打造一个轻量级,简单,易用的Android Banner框架
- 用Silverlight打造一个相对安全的密码控件
- 如何打造一个安全的WEB服务器
- 打造一个安全的Win2003 Server服务器
- CyclicBarrier 打造一个安全的门禁系统
- 打造一个简单的万能适配器
- Xp系统优化 打造一个安全的系统
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- 打造一个安全的用户名密码登陆系统
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- 打造安全的优盘
- 一个简单且安全的文件加密算法
- [DIV/CSS] 用CSS和JS打造一个简单的图片编辑器
- 在Xcode中使用Git进行源码版本控制
- RGB、HSB\HSV、HSL三种颜色空间的原理理解与转换
- java代码获取服务器的地址
- ClassyShark查看apk包信息
- web跨域问题的解决
- PassCode - 打造一个简单易用的安全锁类库
- 我常用的linux命令
- Android:Ubuntu 16.04上编译Android主线最新代码
- LINQ教程
- 1024 ProblemX
- matplotlib使用show方法后不能显示图像的问题
- 顺序表应用2:多余元素删除之建表算法
- android design library提供的TabLayout的用法
- 《如何阅读一本书》笔记