发布于2021-05-29 22:51 阅读(433) 评论(0) 点赞(17) 收藏(1)
更多其他页面-自定义View-实用功能合集:点击查看
Github项目地址: 点击跳转,欢迎fork收藏
仿ios解锁密码界面,按钮文字等全部用canvas自绘制出来,避免了创建多个button和textview组合起来实现密码解锁界面,一个view搞定所有,代码简洁清晰更易于维护。同时按压还带震动效果
1.定义按钮的bean类
ButtonData
这里储存了按钮的相关信息,颜色,大小,rect位置,是否为当前选中,数字number,等。
2.定义好我们需要哪些按钮,将其储存在一个二维数组里mNumberArray片
,这样我们方遍历数组中的所有value然后计算大小位置mButtonMap
。
3.大小位置的计算,先将所有的button视为一个整体按钮layout,计算出整体按钮layout处于canvas的位置,再挨个计算每个button的位置。计算完后将其数字作为key
,创建ButtonData对象作为value
将其储存在mButtonMap
。.储存在mButtonMap
里我们就可以对数据进行操作了,比如返回哪个按钮被当前选中。
5. 确定哪个按钮被当前选中,在onTouchEvent
我们可以获取到手指按压时的位置,接着从mButtonMap
数据中遍历所有ButtonData
对象里的位置getRect
。rect有个方法是可以检测是否包含某个x,y的位置。包含了就表示,当前button被选中。
6.确定了哪个按钮button被选中后,接下来就通过其ButtonData对象进行一些列操作就行了,如果是数字,则将其代表的数字number添加至mPassword_input
进行展示,如果是删除 或 返回,则执行其他操作
7.通过接口OnPasswordListener
我们可以获取返回事件,和密码输入后的结果
属性名 | 介绍 |
---|---|
mPassword_correct | 设置正确的密码 |
setOnPasswordListener | 设置监听事件,返回 和 密码正确结果 |
微信 ----- qq群
原文链接:https://blog.csdn.net/ruiruiddd/article/details/117356567
作者:我是个大美女
链接:http://www.javaheidong.com/blog/article/207917/506b76b8fda793fffbce/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!