Android-简单的图片验证码
2024-10-20 00:23:00
Android-图片验证码生成
1、为啥要验证码?
图片验证码在网络中使用的是比较普遍的。一般都是用来防止恶意破解密码、刷票、论坛灌水、刷页等。
2、怎样的验证码比较好?
验证码的获取方式无非就两种,一种是后台提供一个接口,返回图片的地址和验证码,然后你去请求验证码再显示出来。另一种是直接的在本地生成验证码。后台提供的话,肯定对前端开发人员来说方便很多,拿到直接使用,而对于用户来说就不怎么好了。一张验证码最少要请求两次网络,如果网络不好,验证码加载就会很慢,如果验证码看不清,那就再加载一次,那就呵呵了,所以,本地实现虽然相对来说略显麻烦,但好处是比较明显的,除非项目紧急,让后台那边生成。除此以外还是前端生成比较靠谱。 生成验证码的步骤
1、既然要画,肯定要画布canvas和画笔paint。
2、底色,背景,根据需要可以对验证码的背景颜色进行不同的绘制,这里采用灰色
3、画验证码,这步就比较复杂了,画Text在Android中是这样的,drawText()方法中传进去的X、Y的坐标指的是字的左下角的坐标,也就是说,如果画A,那么坐标点是A的左下角,但画g,那就是g的上半部分圆的左下角。不满足的还可以加点料,画倾斜的验证码。
如下图所示(红线交叉点):不明白的可以参考这里
4、验证码画完就画干扰线和干扰点。
<这里需要注意的是:画字母的时候,要注意顺序,不然如果你画的是ABCD,结果画出来是ACDB,这样,验证码就没意义了。>
基本上画验证码的步骤就是上面几个了。 完整的项目代码:
代码里面注释比较详细了,这里就不再解释。看完基本都懂。这个实例代码只有干扰线,而没有画干扰点了,需要完善的可以自己加上去,还有对于字体,还可以来个倾斜等,各位自己完善吧,此栗子仅供参考! 改如何使用?
上一句红底的是获取验证码图片。下面的那句是获取验证码。
我这里取的都是默认值,如果你要自己设置宽高,字体颜色等就要先获取CaptchaImageUtil对象,然后再设置,最后才是调用createCodeImage(),如果先创建后设置的话,用脚趾甲想想都可以明白这样是无效的。如果刷新验证码,就直接调用createCodeImage()即可。
最后看看效果图:
end
2016-10-25
最新文章
- yii基础应用目录结构
- SQL中order by;group up;like;关联查询join on的用法
- 我的android学习经历24
- 消格子时一个很深的bug的修复纪录
- VS2010开发环境最佳字体及配色[转]
- Q_INVOKABLE与invokeMethod用法全解
- 【暑假】[实用数据结构]UVa11995 I Can Guess the Data Structure!
- openerp 产品图片的批量写入
- MediaPlayer类——播放视频和音乐
- virus.win32.parite.H病毒的查杀方法
- Struts2.0+Spring3+Hibernate3(SSH~Demo)
- (转)SQLServer分区表操作
- 如何用Python编写一个聊天室
- 20165323 结对编程之四则运算week2-整体总结
- 如何配置Java环境变量[转]
- Objective-C 类簇深入理解
- JS编程题练习
- bzoj千题计划231:bzoj1997: [Hnoi2010]Planar
- dateframe取数据
- QWebEngine_C++_交互