自定义控件 - 手势密码控件

直接上效果图

手势密码

一、概述

这是一个手势密码库,可以直接implementation使用,包含自定义手势密码控件PwdGestureView.java
以及两个activity,创建手势密码PwdGestureCreateActivity.java,验证手势密码PwdGestureInputActivity.java

二、实现原理

很简单,就是从左到右,从上到下,一次编号为123456789,手指划过的顺序对应的编号组成手势密码,接下来不说应该也都明白了吧。具体实现方式和逻辑可以自行下载查看,下载链接见本文末尾。

三、使用方法

1.在工程根目录build.gradle增加如下配置:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

2.添加依赖,在app工程目录build.gradle增加如下配置:

dependencies {
    implementation 'com.github.rhinoSp:LibPwdGesture:v1.0.0'
}

3.创建手势密码

1)启动创建手势密码界面

// 默认方式,打开默认创建手势密码界面
PwdGestureUtils.createPwd().show(@NonNull Activity activity);

// 当然也可以打开自己自定义的activity
PwdGestureUtils.createPwd().show(@NonNull Activity activity, @NonNull Class<?> cls);

2)监听创建手势密码返回结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case PwdGestureUtils.Build.REQUEST_CODE_CREATE_PWD:
            if (resultCode == Activity.RESULT_OK) {
                showToast("手势密码创建成功");
                mPwdGestureArray = data.getIntArrayExtra(PwdGestureUtils.Build.KEY_RIGHT_PASSWORD);
            } else {
                showToast("取消创建");
            }
            break;
        default:
            break;
    }
}

4.验证手势密码

1)启动验证手势密码界面

// 默认方式,打开默认创建手势密码界面
PwdGestureUtils.inputPwd().show(@NonNull Activity activity);

// 当然也可以打开自己自定义的activity
PwdGestureUtils.inputPwd().show(@NonNull Activity activity, @NonNull Class<?> cls);

2)监听创建手势密码返回结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case PwdGestureUtils.Build.REQUEST_CODE_INPUT_PWD:
            if (resultCode == Activity.RESULT_OK) {
                // 手势密码验证通过,进入首页
                showToast("手势密码验证通过");
                startActivity(new Intent(getApplicationContext(), SecondActivity.class));
                //finish();
            } else {
                showToast("放弃验证");
            }
            break;
        default:
            break;
    }
}

5.更多接口介绍

  • setRequestCode(int requestCode) 自定义requestCode
  • setRowCount(int rowCount) 设置行数
  • setColumnCount(int columnCount) 设置列数
  • setNormalOvalStrokeWidth(int width) 设置未选中圆环宽度
  • setNormalOvalStrokeColor(@ColorInt int color) 设置未选中圆环颜色
  • setNormalOvalStrokeSelectColor(@ColorInt int color) 设置未选中圆环选中时颜色
  • setNormalOvalStrokeErrorColor(@ColorInt int color) 设置未选中圆环匹配失败时颜色
  • setNormalOvalSolidColor(@ColorInt int color) 设置未选中圆环填充颜色
  • setNormalOvalSolidSelectColor(@ColorInt int color) 设置未选中圆环填充选中时颜色
  • setNormalOvalSolidErrorColor(@ColorInt int color) 设置未选中圆环填充匹配失败时颜色
  • setNormalOvalRadius(int radius) 设置未选中圆环半径
  • setSelectOvalStrokeWidth(int width) 设置选中圆环宽度
  • setSelectOvalStrokeColor(@ColorInt int color) 设置选中圆环颜色
  • setSelectOvalStrokeErrorColor(@ColorInt int color) 设置选中圆环匹配失败时颜色
  • setSelectOvalSolidColor(@ColorInt int color) 设置选中圆环填充颜色
  • setSelectOvalSolidErrorColor(@ColorInt int color) 设置选中圆环填充匹配失败时颜色
  • setSelectOvalRadius(int radius) 设置选中圆环半径
  • setShowGestureLine(boolean show) 设置是否显示手势线条
  • setGestureLineWidth(int width) 设置手势线条颜色
  • setGestureLineColor(@ColorInt int color) 设置手势线条颜色
  • setGestureLineErrorColor(@ColorInt int color) 设置手势线条匹配失败时颜色
  • setAutoMatch(boolean autoMatch) 设置是否自动匹配
  • setAutoResetDelay(int delay) 设置自动匹配失败后重置时间
  • setMinSelectCount(int count) 设置最少选择点个数
  • setRightPassword(int[] rightPwd) 设置正确密码
  • setActionBarBackgroundColor(@ColorInt int color) 设置顶部栏背景色,包括状态栏和标题栏
  • setStatusBarBackgroundColor(@ColorInt int color) 设置状态栏背景颜色
  • setTitleBackgroundColor(@ColorInt int color) 设置标题栏背景颜色
  • setTitle(String title) 设置标题
  • setTitleBackButtonVisible(boolean visible) 设置是否显示标题返回按钮
  • show(@NonNull Activity activity) 进行页面跳转
  • show(@NonNull Activity activity, @NonNull Class

四、Demo下载地址

点击下载

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值