- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android 简易手势密码开源库详解
Android 简易手势密码开源库详解
本文主要介绍Android 简易手势密码,这里主要介绍手势密码如何实现及简单的示例代码,有需要的同学可以参考下
简介
本文介绍一个Android手势密码开源库的使用及实现的详细过程,该开源库主要实现以下几个功能:
支持手势密码的绘制,并支持密码保存功能,解锁时自动比对密码给出结果
封装了绘制密码的方法,比对两次密码是否一致,可以快捷地进行手势密码的设置
可以设置密码输入错误后的重试次数上限
可以自定义不同状态下手势密码图案的颜色
可以自定义手势密码的触摸点数量(n*n)
最近需要用到手势密码解锁功能,找了一些demo感觉用起来都有点麻烦,于是参考一些文章自己造了下轮子,封装了相关的一些方法,使用起来比较便捷。
github链接如下,觉得还可以请帮忙star支持下~
github链接 个人博客
使用效果
首先看下使用效果:
使用方法
XML布局文件中使用该控件
1
2
3
4
5
6
7 com.syd.oden.gesturelock.view.GestureLockViewGroup
android:id=@+id/gesturelock
android:layout_width=match_parent
android:layout_height=match_parent
app:preference_id=1
android:layout_marginTop=30dp
app:count=3 / 可以设置的一些参数,说明如下:
color_no_finger:未触摸时圆形的颜色
color_finger_on:触摸时圆形的颜色
color_finger_up_correct:输入正确时圆形的颜色
color_finger_up_error:出错时圆形的颜色
count:收拾密码的圆形数量,n*n
preference_id:手势密码保存的id号,不输入或输入-1则使用默认的id
初始化
?
1
2
3
4
5
6 private void initGesture() {
mGestureLockViewGroup = (GestureLockViewGroup) findViewById(R.id.gesturelock);
gestureEventListener();
gesturePasswordSettingListener();
gestureRetryLimitListener();
} 设置手势密码监听事件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 private void gestureEventListener() {
mGestureLockViewGroup.setGestureEventListener(new GestureEventListener() {
@Override
public void onGestureEvent(boolean matched) {
mylog.d(onGestureEvent matched: + matched);
if (!matched) {
tv_state.setTextColor(Color.RED);
tv_state.setText(手势密码错误);
} else {
if (isReset) {
isReset = false;
Toast.makeText(MainActivity.this, 清除成功!, Toast.LENGTH_SHORT).show();
resetGesturePattern();
} else {
tv_state.setTextColor(Color.WHITE);
tv_state.setText(手势密码正确);
}
}
}
});
} 若已经设置有密码则会进入该回调,在这里对结果进行处理,上面的例子中加入了一个重设密码的处理。
手势密码设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 private void gesturePasswordSettingListener() {
mGestureLockViewGroup.setGesturePasswordSettingListener(new GesturePasswordSettingListener() {
@Override
public boolean onFirstInputComplete(int len) {
if (len 3) {
tv_state.setTextColor(Color.WHITE);
t
文档评论(0)