Android 实例:九宫格图案解锁,"程序锁"模拟场景使用
来源:互联网 发布:学软件发展前景好不 编辑:程序博客网 时间:2024/04/30 12:18
一、简介
该实例应用一打开,首先进入”欢迎页” WelcomeActivity,然后判断SharePreference中“是否设置了密码”。
- 若未设置密码,进入SetLockActivity进行密码的设置,密码设置成功后进入MainActivity 。
- 否则,进入UnlockActivity进行解锁 ,如果密码与SharePreference中相符,就直接进入MainActivity 。
二、 效果图
(左图)设置密码,进行解锁(右图)
三、代码分析
1.代码文件结构和图片资源
2. WelcomeActivity.java
public class WelcomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); new Handler().postDelayed(new Runnable() { @Override public void run() { String passwordStr = PreferenceUtil.getGesturePassword(WelcomeActivity.this); Intent intent; if (passwordStr == "") { intent = new Intent(WelcomeActivity.this, SetLockActivity.class); } else { intent = new Intent(WelcomeActivity.this, UnlockActivity.class); } startActivity(intent); WelcomeActivity.this.finish(); } }, 2000); }}
3. MainActivity.java
public class MainActivity extends AppCompatActivity { private int mBackKeyPressedTimes = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 双击两次Back键盘退出程序 @Override public void onBackPressed() { if (mBackKeyPressedTimes == 0) { Toast.makeText(this, "再按一次退出程序 ", Toast.LENGTH_SHORT).show(); mBackKeyPressedTimes = 1; new Thread() { @Override public void run() { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } finally { mBackKeyPressedTimes = 0; } } }.start(); return; } else { MainActivity.this.finish(); } super.onBackPressed(); }}
4. 图案解锁的原理
“九宫格图案解锁”其实是一个自定义的View,主要重写了OnDraw()和OnTouchEvent()方法。
另外提供了一个“接口”让Activity去实现,在这里SetLockActivity和UnlockActivity都实现了OnLockListener接口。
private OnLockListener mListener; public interface OnLockListener { public void getStringPassword(String password); public boolean isPassword(); } public void setLockListener(OnLockListener listener) { this.mListener = listener; }
详细内容请参考源码。
源码下载:https://github.com/zhuanghongji/LockPattern
0 0
- Android 实例:九宫格图案解锁,"程序锁"模拟场景使用
- Android自定义九宫格图案解锁
- Android实现九宫格图案解锁
- iOS图案解锁(九宫格)
- 图案解锁——九宫格
- android应用九宫格图案锁
- android九宫格解锁
- Android九宫格解锁
- 解锁图案-九宫格有多少种组合?安全吗?用程序来解答
- 手机的九宫格图案解锁总共能绘出多少种图案?(hiho模拟面试题2 - google在线技术笔试模拟)
- 用calc()绘制手机图案解锁的九宫格样式
- 九宫格图案解锁、支付宝解锁、微信钱包解锁
- Android手势解锁, 九宫格解锁
- Android 九宫格解锁框架
- Android 自定义九宫格解锁
- 九宫格解锁Android代码
- Android九宫格解锁应用
- Android九宫格手势解锁
- bt协议详解 基础篇(上)
- Golang评估报告
- UI常用控件之UISegmentControl
- JavaScript学习手记事件学习
- HttpWatch网络抓包工具的使用
- Android 实例:九宫格图案解锁,"程序锁"模拟场景使用
- 视图动画沿轨迹运动
- 处理XML实例-股票历史数据下载
- Java中Timer
- 《Spring实战》第三版笔记
- “Java核心技术代码点和代码单元”部分学习
- 使用UISegmentControl改变画线颜色
- BestCoder Round #62 (div.2) Clarke and five-pointed star
- UIImage应用与内存管理