博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android Lock Pattern】图案解锁(一):LockPatternView源代码
阅读量:6153 次
发布时间:2019-06-21

本文共 2268 字,大约阅读时间需要 7 分钟。

选择Settings -> Security ->Set up screen lock

设置屏幕锁

选择Pattern

设置图案

在我的真机HTC Desire(Android 2.2)上,截图如下:

Android是一个开源的操作系统,所以我们可以通过下载该控件的源代码重用该控件。

 

1、LockPatterView源代码

图案解锁控件,对应着framework层的LockPatterView类,如下所示:

源代码:

 

2、修改

下载的LockPatternView.java文件,无法在项目中直接使用,需要进行修改。

1)添加图片文件

添加6张图片文件到res/drawable:

对应LockPatternView.java的代码

mBitmapBtnDefault = getBitmapFor(R.drawable.btn_code_lock_default_holo);mBitmapBtnTouched = getBitmapFor(R.drawable.btn_code_lock_touched_holo);mBitmapCircleDefault = getBitmapFor(R.drawable.indicator_code_lock_point_area_default_holo);mBitmapCircleGreen = getBitmapFor(R.drawable.indicator_code_lock_point_area_green_holo);mBitmapCircleRed = getBitmapFor(R.drawable.indicator_code_lock_point_area_red_holo);mBitmapArrowGreenUp = getBitmapFor(R.drawable.indicator_code_lock_drag_direction_green_up);mBitmapArrowRedUp = getBitmapFor(R.drawable.indicator_code_lock_drag_direction_red_up);

btn_code_lock_default_holo.png

btn_code_lock_touched_holo.png

indicator_code_lock_point_area_default_holo.png

indicator_code_lock_point_area_green_holo.png

indicator_code_lock_point_area_red_holo.png

indicator_code_lock_drag_direction_green_up.png

indicator_code_lock_drag_direction_red_up.png

 

2)添加attrs配置文件

添加attrs.xml文件到res/values

 

3)更新strings配置文件

在res/strings.xml添加新的<string/>

Pattern started
Pattern cleared
Cell added
Pattern completed

 

4)修改代码

修改mPaddingLeft为getPaddingLeft(),mPaddingRight为getPaddingRight(),mPaddingTop为getPaddingTop(),mPaddingBottom为getPaddingBottom()

修改mContext为getContext()

修改方法private void sendAccessEvent(int resId)

private void sendAccessEvent(int resId) {    setContentDescription(getContext().getString(resId));    sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);    setContentDescription(null);}

 

5)添加类LockPatternUtils

新建LockPatternUtils.java文件,实现public static String patternToString(List<LockPatternView.Cell> pattern)和public static List<LockPatternView.Cell> stringToPattern(String string)方法

具体可以参考Android的LockPatternUtils类

源代码:

 

3、使用

LockPatternView的使用与其它View相同,并提供了事件的回调处理的方法public void setOnPatternListener(OnPatternListener onPatternListener)和接口LockPatternView.OnPatternListener

 

参考:

 

 

转载地址:http://pkbfa.baihongyu.com/

你可能感兴趣的文章
Kickstart 无人职守安装,终于搞定了。
查看>>
linux开源万岁
查看>>
linux/CentOS6忘记root密码解决办法
查看>>
25个常用的Linux iptables规则
查看>>
集中管理系统--puppet
查看>>
分布式事务最终一致性常用方案
查看>>
Exchange 2013 PowerShell配置文件
查看>>
JavaAPI详解系列(1):String类(1)
查看>>
HTML条件注释判断IE<!--[if IE]><!--[if lt IE 9]>
查看>>
发布和逸出-构造过程中使this引用逸出
查看>>
Oracle执行计划发生过变化的SQL语句脚本
查看>>
使用SanLock建立简单的HA服务
查看>>
发现一个叫阿尔法城的小站(以后此贴为我记录日常常用网址的帖子了)
查看>>
Subversion使用Redmine帐户验证简单应用、高级应用以及优化
查看>>
Javascript Ajax 异步请求
查看>>
DBCP连接池
查看>>
cannot run programing "db2"
查看>>
mysql做主从relay-log问题
查看>>
Docker镜像与容器命令
查看>>
批量删除oracle中以相同类型字母开头的表
查看>>