返回顶部
首页 > 资讯 > 精选 >如何在Android应用中实现一个手势密码功能
  • 888
分享到

如何在Android应用中实现一个手势密码功能

androidroi 2023-05-31 07:05:08 888人浏览 薄情痞子
摘要

如何在Android应用中实现一个手势密码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现思路: 正上方的提示区域,用一个类(LockIndicator.

如何在Android应用中实现一个手势密码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

实现思路:

正上方的提示区域,用一个类(LockIndicator.java)来实现,自定义view来绘制9个提示图标;

手势密码绘制区域,用一个类(GestureContentView.java)来实现,它继承自ViewGroup里面, 添加9个ImageView来表示图标, 在onLayout()方法中设置它们的位置;

手势路径绘制, 用一个类(GestureDrawline.java)来实现,复写onTouchEvent()方法,在这个方法里面监听TouchEvent事件: ACTioN_DOWN、ACTION_MOVE、ACTION_UP事件,来绘制手势连接不同点之间的路径;

9个点的对象,用一个类(GesturePoint.java)来实现,保存它的位置、状态、背景图片等相关信息;

手势密码的获取,判断手指当前的位置,根据滑动路径经过的点,按顺序保存绘制的点的顺序(这里的点顺序从上到下分别是:1,2,3,4,5,6,7,8,9),不能有重复的点。

 三、代码实现步骤:

要用一个类来表示这9个点中的第一个点。里面保留有当前点的上下左右的各个位置等属性

自定义GroupView,用来装9个点,9个点的显示是通过ImageView。复写onLayout这个方法,让点按需求排列

定义一个可以画线的View,复写onTouchEvent方法,在这个方法里面进行画直线的操作

判断用户手指当前的位置,取出当前的位置去与那9个点中的每个点的位置进行比较,如果用户点的位置在某一个点之内,那么当那个点置换背景图片。

具体实现代码如下:

LockIndicator.java 图案提示类

package com.snda.fund.widget;  import com.snda.fund.R;  import android.content.Context; import android.content.res.TypedArray; import android.graphics.canvas; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.drawable.Drawable; import android.os.PowerManager; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; import android.view.View;    public class LockIndicator extends View {   private int numRow = 3; // 行   private int numColum = 3; // 列   private int patternWidth = 40;   private int patternHeight = 40;   private int f = 5;   private int g = 5;   private int strokeWidth = 3;   private Paint paint = null;   private Drawable patternNoraml = null;   private Drawable patternPressed = null;   private String lockPassStr; // 手势密码     public LockIndicator(Context paramContext) {     super(paramContext);   }     public LockIndicator(Context paramContext, AttributeSet paramAttributeSet) {     super(paramContext, paramAttributeSet, 0);     paint = new Paint();     paint.setAntiAlias(true);     paint.setStrokeWidth(strokeWidth);     paint.setStyle(Paint.Style.STROKE);     patternNoraml = getResources().getDrawable(R.drawable.lock_pattern_node_nORMal);     patternPressed = getResources().getDrawable(R.drawable.lock_pattern_node_pressed);     if (patternPressed != null) {       patternWidth = patternPressed.getIntrinsicWidth();       patternHeight = patternPressed.getIntrinsicHeight();       this.f = (patternWidth / 4);       this.g = (patternHeight / 4);       patternPressed.setBounds(0, 0, patternWidth, patternHeight);       patternNoraml.setBounds(0, 0, patternWidth, patternHeight);     }   }     @Override   protected void onDraw(Canvas canvas) {     if ((patternPressed == null) || (patternNoraml == null)) {       return;     }     // 绘制3*3的图标     for (int i = 0; i < numRow; i++) {       for (int j = 0; j < numColum; j++) {         paint.setColor(-16777216);         int i1 = j * patternHeight + j * this.g;         int i2 = i * patternWidth + i * this.f;         canvas.save();         canvas.translate(i1, i2);         String curNum = String.valueOf(numColum * i + (j + 1));         if (!TextUtils.isEmpty(lockPassStr)) {           if (lockPassStr.indexOf(curNum) == -1) {             // 未选中             patternNoraml.draw(canvas);           } else {             // 被选中             patternPressed.draw(canvas);           }         } else {           // 重置状态           patternNoraml.draw(canvas);         }         canvas.restore();       }     }   }     @Override   protected void onMeasure(int paramInt1, int paramInt2) {     if (patternPressed != null)       setMeasuredDimension(numColum * patternHeight + this.g           * (-1 + numColum), numRow * patternWidth + this.f           * (-1 + numRow));   }        public void setPath(String paramString) {     lockPassStr = paramString;     invalidate();   }   }  

--结束END--

本文标题: 如何在Android应用中实现一个手势密码功能

本文链接: https://lsjlt.com/news/224084.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Android应用中实现一个手势密码功能
    如何在Android应用中实现一个手势密码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现思路: 正上方的提示区域,用一个类(LockIndicator....
    99+
    2023-05-31
    android roi
  • 如何在Android中利用view实现一个手势密码功能
    这篇文章将为大家详细讲解有关如何在Android中利用view实现一个手势密码功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。用法: <com.leo.library.view.Ge...
    99+
    2023-05-31
    android roi view
  • 如何在Android应用中实现一个记住密码功能
    本篇文章给大家分享的是有关如何在Android应用中实现一个记住密码功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、打开之前完成的Case_login进行修改再编辑二、将...
    99+
    2023-05-31
    android roi
  • Android开发中怎么实现一个手势密码功能
    本篇文章为大家展示了Android开发中怎么实现一个手势密码功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如果使用GestureOverlayView,在xml配置文件中使用Android.ge...
    99+
    2023-05-31
    android roi
  • 怎么在Android应用中实现一个手势操作识别功能
    今天就跟大家聊聊有关怎么在Android应用中实现一个手势操作识别功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先,在Android系统中,每一次手势交互都会依照以下顺序执行。...
    99+
    2023-05-31
    android roi
  • 如何在Android应用中实现一个二维码生成功能
    本篇文章为大家展示了如何在Android应用中实现一个二维码生成功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android 有自带的jar包可以生成二维码core-3.0.0.jar,其中的c...
    99+
    2023-05-31
    android roi
  • 如何在Android应用中实现一个侧滑功能
    本篇文章给大家分享的是有关如何在Android应用中实现一个侧滑功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现说明:通过自定义布局实现:SlidingLayout继承于...
    99+
    2023-05-31
    android roi
  • Android实现支付宝手势密码功能
    今天就给大家分享android实现支付宝手势密码,很常见,像现在用微信支付,支付宝支付的时候都要自己设置的4位PIN码,然后输入PIN码后立即调用支付接口去支付,毫无疑问的安全...
    99+
    2022-06-06
    支付宝 手势 Android
  • 如何在Android应用中实现一个返回键功能
    今天就跟大家聊聊有关如何在Android应用中实现一个返回键功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除...
    99+
    2023-05-31
    android roi
  • vue2实现手势密码功能
    本文实例为大家分享了vue2实现手势密码功能的具体代码,供大家参考,具体内容如下 组件: <template>   <div class="masks" v-sho...
    99+
    2024-04-02
  • 如何在Android应用中实现一个图片添加功能
    如何在Android应用中实现一个图片添加功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、首先这是用GridView实现的<&#63;xml...
    99+
    2023-05-31
    android roi
  • 如何在Android应用中利用ListView实现一个分页功能
    今天就跟大家聊聊有关如何在Android应用中利用ListView实现一个分页功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Android ListView分页简单实现分页,开发...
    99+
    2023-05-31
    android listview roi
  • 如何在Android应用中利用SDK实现一个地图功能
    这期内容当中小编将会给大家带来有关如何在Android应用中利用SDK实现一个地图功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。找到控制台创建一个应用添加key名称,注意命名规范,还有就是下面的SHA...
    99+
    2023-05-31
    android sdk roi
  • Android应用中怎么实现一个密码显示与隐藏功能
    Android应用中怎么实现一个密码显示与隐藏功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现代码如下:<&#63;xml version="1....
    99+
    2023-05-31
    android roi
  • 如何在Android应用中实现一个图库辅助器功能
    如何在Android应用中实现一个图库辅助器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现步骤第一步,创建辅助类,使用弱引用持有Activity,防止内存溢出。 ...
    99+
    2023-05-31
    android roi
  • 如何在android应用中利用service实现一个计时器功能
    本篇文章给大家分享的是有关如何在android应用中利用service实现一个计时器功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先建立主页面的设计:activity_t...
    99+
    2023-05-31
    android service roi
  • Android应用中怎么实现一个手机震动功能
    本篇文章给大家分享的是有关Android应用中怎么实现一个手机震动功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现方法如下:import android.app.Acti...
    99+
    2023-05-31
    android roi
  • 怎么在Android 应用中实现一个九宫格手势锁
    怎么在Android 应用中实现一个九宫格手势锁?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。主要的方法是重写View.onTouchEvent( Motion...
    99+
    2023-05-31
    android roi
  • 在Android应用中实现一个录音播放功能
    这期内容当中小编将会给大家带来有关在Android应用中实现一个录音播放功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。播放音频文件public class PlayManager { private ...
    99+
    2023-05-31
    android roi
  • 怎么在Android 应用中实现一个换肤功能
    今天就跟大家聊聊有关怎么在Android 应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Android换肤技术总结背景纵观现在各种Android app,其换肤...
    99+
    2023-05-31
    android roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作