问题:

研究了一下Android锁屏的实现,效果如下,其实很简单。

需要引入一个第三方的框架。下面结合Demo讲解下关键步骤。

1.在工程的build.gradle文件中引入第三方库如下:

dependencies {compile 'com.eftimoff:android-patternview:1.0.6@aar'
}

2.AndroidManifest.xml默认即可,不需要做任何修改。

3.layout布局文件如下,其中只有一个锁屏控件PatternView:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:patternview="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.eftimoff.patternview.PatternViewandroid:id="@+id/patternView"android:layout_width="400dp"android:layout_height="400dp"android:layout_centerInParent="true"patternview:gridColumns="4"patternview:gridRows="4" />
</RelativeLayout>

4.MainActivity.java实现具体业务逻辑,其中含有详细注释,代码如下:

package com.example.leidong.pattern;import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import com.eftimoff.patternview.PatternView;/*** Created by leidong on 2017/4/2.*/public class MainActivity extends AppCompatActivity {//锁屏密码图案private PatternView patternView;//锁屏密码图案对应的字符串private String patternString;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化patternViewinitPattern();//SharedPreferences存储锁屏密码final SharedPreferences sp = getSharedPreferences("MyPattern", 0);//锁屏密码输入完成的监听patternView.setOnPatternDetectedListener(new PatternView.OnPatternDetectedListener() {@Overridepublic void onPatternDetected() {//从SharedPreferences中拿取锁屏密码String myPattern = sp.getString("MyPattern", null);//若SharedPreferences中未存储锁屏密码,则当前锁屏图案存为模板if (myPattern == null) {patternString = patternView.getPatternString();Toast.makeText(MainActivity.this, patternString, Toast.LENGTH_LONG).show();SharedPreferences.Editor editor = sp.edit();editor.putString("MyPattern", patternString);editor.commit();patternView.clearPattern();return;}//若SharedPreferences中已存储锁屏密码,则拉取数据进行匹配else{//匹配成功,跳转到欢迎界面if(myPattern.equals(patternView.getPatternString())) {Intent intent = new Intent(MainActivity.this, WelcomeActivity.class);patternView.clearPattern();startActivity(intent);return;}//匹配失败,Toast提示else{Toast.makeText(MainActivity.this, "锁屏密码错误!", Toast.LENGTH_LONG).show();patternView.clearPattern();}}}});}/*** 获取PatternView并进行相关配置*/private void initPattern() {patternView = (PatternView) findViewById(R.id.patternView);patternView.setTactileFeedbackEnabled(false);patternView.setPathColor(Color.BLACK);patternView.setDotColor(Color.BLACK);patternView.setCircleColor(Color.WHITE);}
}

运行结果如下:

1.匹配成功,跳转到欢迎界面

2.匹配失败,Toast提醒匹配失败

Android锁屏Demo相关推荐

  1. jQuery仿Android锁屏图案应用插件

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. android 锁屏通知

    最近有个需求,说要弄个锁屏通知,通知倒是做过很多了,锁屏通知还真没弄过,经过一番研究,这里做个记录,方便搬砖. 话不多少,直接上效果图: 直接上代码: 安卓系统7以及以下: Notification. ...

  3. 基于第三方开发Android锁屏

    注:对不住大家,有点粗心了,之前上传的代码确实有问题(原因是AndroidManifest.xml文件里的包名错了,自己在上传代码时手贱改了一下包名,结果AndroidManifest.xml文件中的 ...

  4. android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用

    微软又做了一款 Android 锁屏应用,质量还不错.如果你已经设置了锁屏,Picturesque可能让你再解锁一次你真的需要在锁屏就处理这么多任务吗? 微软又来给 Android 提供应用了,他们昨 ...

  5. [Android] Android 锁屏实现与总结 (一)

    实现锁屏的方式有多种(锁屏应用.悬浮窗.普通Activity伪造锁屏等等).但国内比较主流并且被广泛应用的Activity伪造锁屏方式. 实例演示图片如下: 系列文章链接如下: [Android] A ...

  6. Android 锁屏键和home键分开处理

    在做视频直播的时候遇到一个问题,就是Android锁屏状态下与home键状态下SurfaceView的生命周期发生的改变是不相同的. 因为home键与锁屏的时候activity都会走onPause() ...

  7. android锁屏应用系统排行榜,重塑安卓手机的20大锁屏应用程序

    1. AcDisplay 它是一个简单的设计android锁屏应用程序,以简约的方式处理通知.您可以直接从锁定屏幕访问应用程序.它具有使用传感器唤醒设备的活动模式. 兼容性 - Android 4.1 ...

  8. jQuery仿Android锁屏图案应用

    jQuery仿Android锁屏图案应用 在线演示 本地下载 posted @ 2018-12-03 14:08 栖息地 阅读(...) 评论(...) 编辑 收藏

  9. Android锁屏实现与总结

    Android锁屏实现与总结 Android锁屏实现与总结(网易云阅读) 一.自定义锁屏基本原理 二.重要步骤 1.广播注册 2.Activity设置 3.按键的屏蔽 4.滑屏解锁 5.Event b ...

  10. Android 锁屏,息屏情况下打开界面Activity类似微信视频通话接电话时弹出接电话的界面

    Android 锁屏,息屏情况下打开界面Activity,类似微信视频通话接电话时弹出接电话的界面 https://blog.csdn.net/yingtian648/article/details/ ...

最新文章

  1. android class newinstance 构造函数 参数,android Fragment里的newInstance和构造函数
  2. Artlantis 2020中文版
  3. [C++调试笔记]初始化
  4. JDK6u25里添加的按线程统计分配内存量: JMX
  5. d3.js选择、插入、删除元素
  6. 【theano-windows】学习笔记十五——受限玻尔兹曼机
  7. 求最长回文串-从动态规划到马拉车之路(上)
  8. 演练 聚美Y品商品分类导航 1002 html
  9. c语言sleep函数上限多久解除,关于sleep函数的问题,
  10. mfc中点击关闭按钮时删除指定文件
  11. c语言字符输出128,如何将128位整数转换为C中的十进制ASCII字符串?
  12. 《圈圈教你玩USB》 第一章 USB 概述及协议基础——看书笔记
  13. java刷票小程序,小程序投票系统刷票
  14. 在线诺基亚短信图片生成器工具
  15. 魅族 系统更新服务器,Flyme
  16. 复制一颗二叉树(java语言)
  17. 华为云服务器双十一报价表出炉最新内容
  18. 有哪些主流智能音箱品牌值得买?小米、华为、苹果、百度
  19. Programming Rust Fast, Safe Systems Development(译) 错误处理(第七章)
  20. JSP页面调用log4j写日志文件

热门文章

  1. 生日在java中怎么写_怎样用java做个生日提醒?如果同一天有多个人过生日怎么做?...
  2. 前端工作日记day2
  3. 崩溃日志保存本地log,服务器上传
  4. 建议更新IE浏览器的版本
  5. 如何使用Windows事件查看器和微软知识库解决问题
  6. console接口配置登录密码
  7. 怎么看空调定时成功_空调定时怎么设置
  8. 赖美云的认证照_赖美云的“瓜子牙”辣眼睛?原来牙齿美容这么重要
  9. 【EDM邮件营销】独立站卖家如何通过用户标签提高EDM邮件打开率
  10. 2016.10.9晨记