Android 九宫格解锁Demo--Android 进阶之路
来源:互联网 发布:北京学java最好的学校 编辑:程序博客网 时间:2024/05/17 02:51
好长时间没写博客了,公司两个项目并行开发实在是没啥时间写,终于项目都上线完成趁这个时间可以研究研究自己感兴趣的事情,我对Android 中的View是一直感兴趣的,做出来很炫的东西很有成就感,有木有?当然,在Android中进阶高级工程师对View也必须了解、熟悉、掌握、和精通的。我现在正在往高阶努力着,好了,废话不多说,直接上图看看是不是想要的效果。
首先说一下思路:
1.继承一个View,布局中引用这个View。(这也是必须的哈哈)
2.先绘制出九个大圆(灰色的)和九个小圆(白色的)
3.重写onTouchEvent,监听触摸事件,记录滑动轨迹(只记录第一次落点成功的轨迹),和滑动的索引(也就是密码)
4.根据滑动的轨迹进行绘制线条
5.暴露两个方法和两个回调,当用户绘制完成以后回调,和获取用户绘制的密码
OK!现在直接上代码
构造方法就不上传了,里面就是初始化一下画笔参数,直接上传onSizeChanged方法,这个方法是当View测量完成以后进行回调,里面初始化一些参数
initPattern方法做的事情主要是进行图案位置的保存,每一个图案是一个对象,里面记录它应该摆放的位置,然后用一个集合进行存储这九个图案对象
Pattern对象里面主要就是 大圆的四个位置 和小圆的四个位置 和一个boolean是否选中
然后直接就开始绘制大圆小圆,绘制很简单,只要是canvas.drawRoundRect()// 传入四个位置的值和两个圆角的角度,和一个画笔
这里要注意的是先绘制大圆--->再绘制线--->小圆,这样可以把线的接口给盖住
绘制线需要预先留好,待用户触摸的时候,调用invalidate(); 就绘制出来,先看一下绘制线的代码
绘制的事情搞完,接下来就是监听用户触摸的事件了,主要就是按下,移动,抬起,这里不贴onTouchEvent方法的代码了,
里面主要是调用了upDatePattern(float x, float y)
OK,绘制的流程就搞完了,接下来就是提供两个方法,一个重新绘制,和一个再次绘制
主要就是清空一下数据,如果是再次绘制的会用一个变量记录是第二次绘制
然后就是提供两个回调,一个是第一次绘制成功的回调(密码的集合),一个是第二次成功的回调(是否一致)
大体逻辑就算是完成了,没有那么细致,大家如果有这个需求的话可以自己完善一下,比如把密码存到本地,图案的颜色和样式都可以的!
我会把源码上传的
源码的下载地址:http://download.csdn.net/detail/hyw88866/9607836
- Android 九宫格解锁Demo--Android 进阶之路
- android九宫格解锁
- Android九宫格解锁
- Android之九宫格解锁的实现
- Android之九宫格解锁的实现
- Android之九宫格解锁的实现
- android自定义view之九宫格解锁
- android自定义view之九宫格解锁
- Android进阶之自定义View实战(二)九宫格手势解锁实现
- Android 九宫格解锁框架
- Android 自定义九宫格解锁
- 九宫格解锁Android代码
- Android九宫格解锁应用
- Android九宫格手势解锁
- Android手势解锁, 九宫格解锁
- Android自定义控件之滑动解锁九宫格
- Android九宫解锁源码
- Android纯代码实现九宫格解锁
- Mysql删除语句
- 微软医疗BI简介
- vim中大小写转换
- WebView详解(一)
- iOS 开发中你是否遇到这些经验问题
- Android 九宫格解锁Demo--Android 进阶之路
- 常用GIT bash 命令一览
- 2016.8.18 C组总结
- Android中facebook与google的第三方接入
- doGet与doPost的区别
- 可伸缩的TextView
- 关于今天装oracle之后用工具链接时的问题
- Python的数据库--MySQL结果集
- 用application loader上传ipa包遇到的问题