项目作者: Reone

项目描述 :
九宫格手势锁View,Android phone pattern lock screen
高级语言: Java
项目地址: git://github.com/Reone/GestureLock.git
创建时间: 2018-02-27T09:08:44Z
项目社区:https://github.com/Reone/GestureLock

开源协议:

下载


GestureLock

九宫格手势锁View,Android phone pattern lock screen

参考 感谢: jlertele/GestureLibray

  • 这是一个九宫格解锁的库
  • 提供一个View — LockView
  • 支持通过xml设置颜色,大小等等属性
  • 支持自定义图案,默认的有Style.NORMAL,Style.RECT,也可以完全自定义,demo中有例子
  • 提供LockView的逻辑管理接口,也就是View的事件监听 — ProcessManager
    通过这个接口你可以完成解锁的大部分需求,具体接口如下

    1. public abstract class ProcessManager {
    2. private LockView lockView = null;
    3. /**
    4. * 开始输入
    5. * @return true则允许输入,false不允许输入
    6. */
    7. public abstract boolean onInputStart();
    8. /**
    9. * 当一个新的点选中的时候调用
    10. * @param point
    11. */
    12. public abstract void pointAttach(@NonNull Integer point);
    13. /**
    14. * 输入完成
    15. * @param points
    16. */
    17. public abstract void onInputEnd(@NonNull List<Integer> points);
    18. /**
    19. * 某些变量的初始化需要用到lockView可以在这个方法中进行
    20. */
    21. public abstract void lockViewAttach();
    22. protected @NonNull LockView getLockView() {
    23. return lockView;
    24. }
    25. public void setLockView(@NonNull LockView lockView) {
    26. this.lockView = lockView;
    27. lockViewAttach();
    28. }
    29. }
  • 提供一个常用的逻辑管理类 — SimpleProcessManager

  • 提供了一些小东西,Base64.java、PasswordCache.java、VibratorUtil

引用

  1. allprojects {
  2. repositories {
  3. ...
  4. maven { url 'https://jitpack.io' }
  5. }
  6. }
  7. dependencies {
  8. implementation 'com.github.Reone:GestureLock:$version_code'
  9. }

使用

  1. 添加引用
  2. 在布局中添加LockView
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:layout_width="match_parent" android:layout_height="match_parent"
    4. android:background="#1592f1"
    5. xmlns:app="http://schemas.android.com/apk/res-auto">
    6. <com.reone.gesturelibrary.view.LockView
    7. android:id="@+id/lockView"
    8. android:layout_width="300dp"
    9. android:layout_height="300dp"
    10. android:layout_gravity="center"
    11. android:background="#1592f1"
    12. app:color_error_ring="#c62828"
    13. app:color_on_ring="#ffffff"
    14. app:color_up_ring="#ffffff"
    15. app:color_on_background="#1592f1"
    16. app:inner_background_width="19dp"
    17. app:inner_ring_width="14dp"
    18. app:outer_ring_spacing_width="41dp"
    19. app:line_width="3dp"
    20. app:stroke_width="3dp"
    21. app:no_finger_stroke_width="3dp"></com.reone.gesturelibrary.view.LockView>
    22. </FrameLayout>
  3. 创建逻辑管理类
    1. class SimpleProcessManager extends ProcessManager
  4. 设置自定义管理类
    1. lockView = findViewById(R.id.lockView);
    2. lockView.setProcessManager(new SimpleProcessManager());
    注意:声明时需要添加泛型
    1. LockView<SimpleProcessManager> lockView;
  5. 使用自定义管理类方法
    1. lockView.getProcessManager().setMode(SimpleProcessManager.SETTING_PASSWORD);

图例