九宫格手势密码

关于自定义控件已经了解过一些理论知识了,但是实际动手的次数实在是很少,最近下定决心开始动手实践。
下面就是对九宫格手势密码的具体实现做一个总结和说明,也为一些不知如何去实现的朋友提供一个思路

首先大家来看一下用法:

<com.example.customer.myapplication.weight.Lock9View
        android:layout_width="300dp"
        android:layout_height="300dp"
        app:errorNum="3"
        app:hightDrawable="@drawable/huizhi"
        app:minPoint="4"
        app:nodeLineColor="@color/colorPrimary"
        app:nodeLineWidth="5dp"
        app:nodePadding="20dp"
        app:normalDrawable="@drawable/chushi"/>

里面app开头的属性都是控件里面的自定义属性,至于自定义属性具体是怎么写的,后面会给大家介绍

接下来我们来看一下控件中提供的一个方法

/**
     * 设置已有密码
     *
     * @param lock
     */
    public void setLock(String lock) {
        this.lock = lock;
        this.isSetLock = false;
    }

这个方法是在已经设置过密码,现在需要去解锁的时候调用的。

至于手势绘制结果是通过一个回调返回的,大家只需要实现一下这个监听就可以监听到密码设置结果和解锁结果了

//密码绘制的回调
    public interface OnLockFinishListener {
   
        void onSuccess(boolean isSetLock, String password);

        void onShort(int remainder);

        void onFailue(boolean isSetLock, String password);
    }

这个是回调监听,里面主要有三个方法,成功,失败,密码太短这三个,isSetLock是是否是设置密码的,true - 设置密码 false - 解锁密码 password - 当前绘制的密码

接下来我们看一下在Lock9View内部定义的一个继承自View的NodeView

//九宫格中的每个宫格
    private class NodeView extends View {
   
        //记录对应的中心点坐标,半径,编号,当前状态(默认or高亮)

        private float centerX;

        private float centerY;

        private</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值