Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils等分析

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.手势密码顶部记录区,这里的小圆圈是可以在这里设置大小和间距的,这里是比较麻烦的区域,需要你非常的细心设置。

注意: 这里的背景切图一定要做好,要美工给你标出大小和间距,

<LinearLayout
android: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.效果图

至于底部按钮、提示文字、背景颜色等都是很容易解决的

积累一些吧,就算你不是很懂这里的代码,你也可以做你的手势密码。

源码下载:http://download.csdn.net/detail/pcaxb/8747015

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 02:24:38

Android手势密码LockPatternView、LockPasswordUtils、LockPatternUtils等分析的相关文章

Android手势密码实现

图 二.实现思路: 1. 正上方的提示区域,用一个类(LockIndicator.java)来实现,自定义view来绘制9个提示图标: 2. 手势密码绘制区域,用一个类(GestureContentView.java)来实现,它继承自ViewGroup里面, 添加9个ImageView来表示图标, 在onLayout()方法中设置它们的位置: 3. 手势路径绘制, 用一个类(GestureDrawline.java)来实现,复写onTouchEvent()方法,在这个方法里面监听TouchEve

android 手势密码

下载路径:http://download.csdn.net/detail/menglele1314/8800209 package com.activity; import android.app.Activity; import android.os.Bundle; import android.text.Html; import android.text.TextUtils; import android.view.View; import android.view.View.OnClick

支付宝钱包手势密码破解实战

背景 随着移动互联网的普及以及手机屏幕越做越大等特点,在移动设备上购物.消费已是人们不可或缺的一个生活习惯了.随着这股浪潮的兴起,安全.便捷的移动支付需求也越来越大.因此,各大互联网公司纷纷推出了其移动支付平台.其中,用的比较多的要数腾讯的微信和阿里的支付宝钱包了.就我而言,平时和同事一起出去AA吃饭,下班回家打车等日常生活都已经离不开这两个支付平台了. 正所谓树大招风,移动支付平台的兴起,也给众多一直徘徊在网络阴暗地带的黑客们又一次重生的机会.因为移动平台刚刚兴起,人们对移动平台的安全认识度还

支付宝钱包手势密码破解实战(root过的手机可直接绕过手势密码)

/* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰    邮箱: [email protected] */ 背景 随着移动互联网的普及以及手机屏幕越做越大等特点,在移动设备上购物.消费已是人们不可或缺的一个生活习惯了.随着这股浪潮的兴起,安全.便捷的移动支付需求也越来越大.因此,各大互联网公司纷纷推出了其移动支付平台.其中,用的比较多的要数腾讯的微信和阿里的支付宝钱包了.就我而言,平时和同事一起出去AA吃饭,下班回家打车等日常生活都已经离不开这两个支付平台了. 正所谓树大招风,移动支付

[转载]支付宝钱包手势密码破解实战(root过的手机可直接绕过手势密码)

/* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰    邮箱: [email protected] */ 背景 随着移动互联网的普及以及手机屏幕越做越大等特点,在移动设备上购物.消费已是人们不可或缺的一个生活习惯了.随着这股浪潮的兴起,安全.便捷的移动支付需求也越来越大.因此,各大互联网公司纷纷推出了其移动支付平台.其中,用的比较多的要数腾讯的微信和阿里的支付宝钱包了.就我而言,平时和同事一起出去AA吃饭,下班回家打车等日常生活都已经离不开这两个支付平台了. 正所谓树大招风,移动支付

Xamarin.Forms 手势密码实现

Xamarin.Forms 手势密码实现 在前面的文章中,讲到了Xamarin.Android.Xamarin.iOS.UWP分别实现手势密码功能,现在我们在Xamarin.Forms中来实现这个功能.    原理和Xamarin.Android.Xamarin.iOS.UWP一样,关键就是如何使用ViewRenderer. 首先我们新建Xamarin.Forms项目: 在项目中创建GuestureLockView继承View(官方文档: 自定义Renderer). 接下来分别在Android.

Android招财进宝手势密码的实现

这几个月都是在做招财进宝项目,一个高收益低风险的理财APP,有兴趣的可以下载玩玩,收益不错哦!!! 招财进宝下载地址:http://8.shengpay.com/ 前段时间因产品需求,做了一个手势密码,跟支付宝的手势密码类似,这里跟大家分享交流一下我实现的方式吧. 这篇来分享一下绘制手势密码的实现(主要是设置手势密码.校验手势密码): 一.大致界面介绍:                      图1                                                

Android例子源码仿支付宝手势密码的功能实现

本项目是一个仿支付宝手势密码部分的源码,项目在1280×720分辨率上显示有问题,在 854x480上没有问题,项目编码UTF-8默认编译版本4.4.2,实现思路: 1.要用一个类来表示这9个点中的第一个点.里面保留有当前点的上下左右的各个位置等属性: 2.自定义GroupView,用来装9个点,9个点的显示是通过ImageView.复写onLayout这个方法,让点按需求排列: 3.定义一个可以画线的View,复写onTouchEvent方法,在这个方法里面进行画直线的操作: 4.判断用户手指

Android例子源码仿支付宝手势密码的功能实

本项目是一个仿支付宝手势密码部分的源码,项目在1280×720分辨率上显示有问题,在 854x480上没有问题,项目编码UTF-8默认编译版本4.4.2,实现思路: 1.要用一个类来表示这9个点中的第一个点.里面保留有当前点的上下左右的各个位置等属性: 2.自定义GroupView,用来装9个点,9个点的显示是通过ImageView.复写onLayout这个方法,让点按需求排列: 3.定义一个可以画线的View,复写onTouchEvent方法,在这个方法里面进行画直线的操作: 4.判断用户手指