Android锁屏Demo
问题:
研究了一下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相关推荐
- jQuery仿Android锁屏图案应用插件
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- android 锁屏通知
最近有个需求,说要弄个锁屏通知,通知倒是做过很多了,锁屏通知还真没弄过,经过一番研究,这里做个记录,方便搬砖. 话不多少,直接上效果图: 直接上代码: 安卓系统7以及以下: Notification. ...
- 基于第三方开发Android锁屏
注:对不住大家,有点粗心了,之前上传的代码确实有问题(原因是AndroidManifest.xml文件里的包名错了,自己在上传代码时手贱改了一下包名,结果AndroidManifest.xml文件中的 ...
- android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用
微软又做了一款 Android 锁屏应用,质量还不错.如果你已经设置了锁屏,Picturesque可能让你再解锁一次你真的需要在锁屏就处理这么多任务吗? 微软又来给 Android 提供应用了,他们昨 ...
- [Android] Android 锁屏实现与总结 (一)
实现锁屏的方式有多种(锁屏应用.悬浮窗.普通Activity伪造锁屏等等).但国内比较主流并且被广泛应用的Activity伪造锁屏方式. 实例演示图片如下: 系列文章链接如下: [Android] A ...
- Android 锁屏键和home键分开处理
在做视频直播的时候遇到一个问题,就是Android锁屏状态下与home键状态下SurfaceView的生命周期发生的改变是不相同的. 因为home键与锁屏的时候activity都会走onPause() ...
- android锁屏应用系统排行榜,重塑安卓手机的20大锁屏应用程序
1. AcDisplay 它是一个简单的设计android锁屏应用程序,以简约的方式处理通知.您可以直接从锁定屏幕访问应用程序.它具有使用传感器唤醒设备的活动模式. 兼容性 - Android 4.1 ...
- jQuery仿Android锁屏图案应用
jQuery仿Android锁屏图案应用 在线演示 本地下载 posted @ 2018-12-03 14:08 栖息地 阅读(...) 评论(...) 编辑 收藏
- Android锁屏实现与总结
Android锁屏实现与总结 Android锁屏实现与总结(网易云阅读) 一.自定义锁屏基本原理 二.重要步骤 1.广播注册 2.Activity设置 3.按键的屏蔽 4.滑屏解锁 5.Event b ...
- Android 锁屏,息屏情况下打开界面Activity类似微信视频通话接电话时弹出接电话的界面
Android 锁屏,息屏情况下打开界面Activity,类似微信视频通话接电话时弹出接电话的界面 https://blog.csdn.net/yingtian648/article/details/ ...
最新文章
- android class newinstance 构造函数 参数,android Fragment里的newInstance和构造函数
- Artlantis 2020中文版
- [C++调试笔记]初始化
- JDK6u25里添加的按线程统计分配内存量: JMX
- d3.js选择、插入、删除元素
- 【theano-windows】学习笔记十五——受限玻尔兹曼机
- 求最长回文串-从动态规划到马拉车之路(上)
- 演练 聚美Y品商品分类导航 1002 html
- c语言sleep函数上限多久解除,关于sleep函数的问题,
- mfc中点击关闭按钮时删除指定文件
- c语言字符输出128,如何将128位整数转换为C中的十进制ASCII字符串?
- 《圈圈教你玩USB》 第一章 USB 概述及协议基础——看书笔记
- java刷票小程序,小程序投票系统刷票
- 在线诺基亚短信图片生成器工具
- 魅族 系统更新服务器,Flyme
- 复制一颗二叉树(java语言)
- 华为云服务器双十一报价表出炉最新内容
- 有哪些主流智能音箱品牌值得买?小米、华为、苹果、百度
- Programming Rust Fast, Safe Systems Development(译) 错误处理(第七章)
- JSP页面调用log4j写日志文件
热门文章
- 生日在java中怎么写_怎样用java做个生日提醒?如果同一天有多个人过生日怎么做?...
- 前端工作日记day2
- 崩溃日志保存本地log,服务器上传
- 建议更新IE浏览器的版本
- 如何使用Windows事件查看器和微软知识库解决问题
- console接口配置登录密码
- 怎么看空调定时成功_空调定时怎么设置
- 赖美云的认证照_赖美云的“瓜子牙”辣眼睛?原来牙齿美容这么重要
- 【EDM邮件营销】独立站卖家如何通过用户标签提高EDM邮件打开率
- 2016.10.9晨记