Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils等分析
来源:互联网 发布:网络连接器主要 编辑:程序博客网 时间:2024/05/01 22:44
Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils
在使用别人写的这个手势密码的时候,我们通常是有自己的需求,可能这里的代码很多也很复杂,有没有什么很多注释,要把整个代码弄明白是要花很多时间而且基础要非常好的,可能在赶项目的时候没有时间去研究,下面我列出一些关键的地方,方便修改代码。
1.在创建手势密码的时候CreateGesturePasswordActivity中
下面是手势密码设置的时候界面的一些变化,和要处理的一些事情
switch (mUiStage) {case Introduction://刚进去的时候 // 重试的时候mLockPatternView.clearPattern();break;case HelpScreen://刚进去的时候mLockPatternView.setPattern(DisplayMode.Animate, mAnimatePattern);break;case ChoiceTooShort://设置短了松开mLockPatternView.setDisplayMode(DisplayMode.Wrong);postClearPatternRunnable();break;case FirstChoiceValid://设置对了松开break;case NeedToConfirm://点击继续mLockPatternView.clearPattern();updatePreviewViews();break;case ConfirmWrong://第二次和第一次的不一样mLockPatternView.setDisplayMode(DisplayMode.Wrong);postClearPatternRunnable();break;case ChoiceConfirmed://第二次和第一次的一样break;}
2.在LockPatternView中设置手势密码默认、正确和错误的显示图片,其实那个圈圈的大小是根据你的图片的大小变化的
注意: 这里的三个图片的大小是一样的
画手势的默认图片mBitmapCircleDefault = getBitmapFor(R.drawable.gesture_pattern_item_bg);画手势正确的图片mBitmapCircleGreen = getBitmapFor(R.drawable.gesture_pattern_selected);画手势错误的图片mBitmapCircleRed = getBitmapFor(R.drawable.gesture_pattern_selected_wrong);
3.在LockPatternView中设置手势密码连接线的颜色红色和黄色
这里的颜色你可能要改变多个地方的颜色
设置黄色mPathPaint.setColor(Color.RED);设置红色mPathPaint.setColor(Color.YELLOW);
4.判断有没有手势密码
if (App.getInstance().getLockPatternUtils().savedPatternExists()) {//如果这里是true就是有手势密码,false就是没有手势密码}
5.清除手势密码重新创建
String LOCK_PATTERN_FILE = "gesture.key";String dataSystemDirectory = context.getFilesDir() .getAbsolutePath(); File file = new File(dataSystemDirectory , LOCK_PATTERN_FILE);if (file.isFile()) { file.delete(); } 然后跳转到UnlockGesturePasswordActivity.class不到CreateGesturePasswordActivity.java的哪里就可以了
6.手势密码顶部记录区,这里的小圆圈是可以在这里设置大小和间距的,这里是比较麻烦的区域,需要你非常的细心设置。
注意: 这里的背景切图一定要做好,要美工给你标出大小和间距,
<LinearLayoutandroid:id="@+id/gesturepwd_setting_preview"android:layout_width="40.0dip"android:layout_height="40.0dip"android:layout_gravity="center_horizontal"android:background="@drawable/gesture_create_grid_bg"android:orientation="vertical"android:padding="5.0dip" > <LinearLayout android:layout_width="fill_parent" android:layout_height="6.0dip" > <View android:id="@+id/gesturepwd_setting_preview_0" android:layout_width="6.0dip" android:layout_height="6.0dip" android:background="@drawable/trans" /> <View android:id="@+id/gesturepwd_setting_preview_1" android:layout_width="6.0dip" android:layout_height="6.0dip" android:layout_marginLeft="6.0dip" android:background="@drawable/trans" /> <View android:id="@+id/gesturepwd_setting_preview_2" android:layout_width="6.0dip" android:layout_height="6.0dip" android:layout_marginLeft="6.0dip" android:background="@drawable/trans" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="6.0dip" android:layout_marginTop="6.0dip" > <View android:id="@+id/gesturepwd_setting_preview_3" android:layout_width="6.0dip" android:layout_height="6.0dip" android:background="@drawable/trans" /> <View android:id="@+id/gesturepwd_setting_preview_4" android:layout_width="6.0dip" android:layout_height="6.0dip" android:layout_marginLeft="6.0dip" android:background="@drawable/trans" /> <View android:id="@+id/gesturepwd_setting_preview_5" android:layout_width="6.0dip" android:layout_height="6.0dip" android:layout_marginLeft="6.0dip" android:background="@drawable/trans" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="6.0dip" android:layout_marginTop="6.0dip" > <View android:id="@+id/gesturepwd_setting_preview_6" android:layout_width="6.0dip" android:layout_height="6.0dip" android:background="@drawable/trans" /> <View android:id="@+id/gesturepwd_setting_preview_7" android:layout_width="6.0dip" android:layout_height="6.0dip" android:layout_marginLeft="6.0dip" android:background="@drawable/trans" /> <View android:id="@+id/gesturepwd_setting_preview_8" android:layout_width="6.0dip" android:layout_height="6.0dip" android:layout_marginLeft="6.0dip" android:background="@drawable/trans" /> </LinearLayout></LinearLayout>
7.效果图
至于底部按钮、提示文字、背景颜色等都是很容易解决的
积累一些吧,就算你不是很懂这里的代码,你也可以做你的手势密码。
0 0
- Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils等分析
- Android 手势密码分析
- Android手势密码原理分析
- android手势密码
- Android手势密码
- Android 手势密码
- android 手势密码
- Android手势密码
- Android手势密码
- Android手势密码解锁
- android---手势密码
- Android设置手势密码
- Android手势密码探索
- 《android手势密码》
- Android自定义手势密码
- Android手势密码
- Android手势密码实现方案
- Android手势密码实现方案
- Shell Script - 追踪与debug
- 宝宝心声
- 分层驱动将IRP分解成多个IRP
- 面向对象(02)
- MySQL中的UUID
- Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils等分析
- NavigationView+Toolbar
- DevExpress XPO 常用功能
- DB Query Analyzer 6.04 is distributed, 78 articles concerned have been published
- HDU 5365(不是地球人)
- HDU 1114
- DevExpress ORM Tool (XPO)
- I Hate It
- 基于OpenCL的深度学习工具:AMD MLP及其使用详解