快速实现手势解锁功能

添加 PatternLock 到项目

  • 第一步: 添加 JitPack 到项目的根 build.gradle
allprojects {repositories {...maven { url 'https://jitpack.io' }}
}
复制代码
  • 第二步:添加库依赖
dependencies {implementation 'com.github.huangziye:PatternLock:${latest_version}'
}
复制代码
  • 在 xml 中编写
<com.hzy.lock.PatternLockViewandroid:id="@+id/mPatternLockView"android:layout_width="280dp"android:layout_height="280dp"android:layout_gravity="center_horizontal"android:layout_marginTop="16dp"app:aspectRatio="square"app:aspectRatioEnabled="true"app:dotAnimationDuration="150"app:dotCount="3"app:dotNormalSize="10dp"app:dotSelectedSize="24dp"app:normalStateColor="@color/colorPrimary"app:correctStateColor="@color/colorPrimary"app:wrongStateColor="@color/pomegranate"app:pathEndAnimationDuration="100"app:pathWidth="3dp"/>
复制代码
  • 用 kotlin 代码实现
private fun initPatternLockView() {//设置横纵坐标点的个数mPatternLockView.setDotCount(3)//设置未选中点的大小mPatternLockView.setDotNormalSize(ResourceUtil.getDimensionInPx(this,R.dimen.pattern_lock_dot_size) as Int)//设置选中时点的大小mPatternLockView.setDotSelectedSize(ResourceUtil.getDimensionInPx(this,R.dimen.pattern_lock_dot_selected_size) as Int)//设置路径线的宽度mPatternLockView.setPathWidth(ResourceUtil.getDimensionInPx(this,R.dimen.pattern_lock_path_width) as Int)//设置宽高比是否启用mPatternLockView.setAspectRatioEnabled(true)//设置宽高比mPatternLockView.setAspectRatio(PatternLockView.AspectRatio.ASPECT_RATIO_HEIGHT_BIAS)//设置View的模式mPatternLockView.setViewMode(PatternLockView.PatternViewMode.CORRECT)//设置点动画持续时间mPatternLockView.setDotAnimationDuration(150)// 设置Pat结束动画持续时间mPatternLockView.setPathEndAnimationDuration(100)//设置正确的状态颜色mPatternLockView.setCorrectStateColor(ResourceUtil.getColor(this, R.color.colorPrimary))//是否设置为隐身模式mPatternLockView.setInStealthMode(false)//设置是否启用触觉反馈mPatternLockView.setTactileFeedbackEnabled(true)//设置输入是否启用mPatternLockView.setInputEnabled(true)mPatternLockView.addPatternLockListener(mPatternLockViewListener)
}
复制代码

效果预览

关于我

  • 简书

  • 掘金

  • Github

License

Copyright 2018, huangziyeLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
复制代码

Published by

风君子

独自遨游何稽首 揭天掀地慰生平