验证码功能在各大网站都能用到,下面小编通过实例代码给大家分享Android 获取随机验证码功能,具体代码如下所示:
package cn.hk.image;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
public class VerifyCode {
private int w = 70;
private int h = 35;
private Random r = new Random();
// {"宋体", "华文楷体", "黑体", "华文新魏", "华文隶书", "微软雅黑", "楷体_GB2312"}
private String[] fontNames = {"宋体", "华文楷体", "黑体", "微软雅黑", "楷体_GB2312"};
// 可选字符
private String codes = "23456789abcdefghjkmnopqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ";
// 背景色
private Color bgColor = new Color(255, 255, 255);
// 验证码上的文本
private String text ;
// 生成随机的颜色
private Color randomColor () {
int red = r.nextInt(150);
int green = r.nextInt(150);
int blue = r.nextInt(150);
return new Color(red, green, blue);
}
// 生成随机的字体
private Font randomFont () {
int index = r.nextInt(fontNames.length);
String fontName = fontNames[index];//生成随机的字体名称
int style = r.nextInt(4);//生成随机的样式, 0(无样式), 1(粗体), 2(斜体), 3(粗体+斜体)
int size = r.nextInt(5) + 24; //生成随机字号, 24 ~ 28
return new Font(fontName, style, size);
}
// 画干扰线
private void drawLine (BufferedImage image) {
int num = 3;//一共画3条
Graphics2D g2 = (Graphics2D)image.getGraphics();
for(int i = 0; i < num; i++) {//生成两个点的坐标,即4个值
int x1 = r.nextInt(w);
int y1 = r.nextInt(h);
int x2 = r.nextInt(w);
int y2 = r.nextInt(h);
g2.setStroke(new BasicStroke(1.5F));
g2.setColor(Color.BLUE); //干扰线是蓝色
g2.drawLine(x1, y1, x2, y2);//画线
}
}
// 随机生成一个字符
private char randomChar () {
int index = r.nextInt(codes.length());
return codes.charAt(index);
}
// 创建BufferedImage,图片缓存区
private BufferedImage createImage () {
BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D)image.getGraphics();
g2.setColor(this.bgColor);
g2.fillRect(0, 0, w, h);
return image;
}
// 调用这个方法得到验证码
public BufferedImage getImage () {
BufferedImage image = createImage();//创建图片缓冲区
Graphics2D g2 = (Graphics2D)image.getGraphics();//得到绘制环境
StringBuilder sb = new StringBuilder();//用来装载生成的验证码文本
// 向图片中画4个字符
for(int i = 0; i < 4; i++) {//循环四次,每次生成一个字符
String s = randomChar() + "";//随机生成一个字母
sb.append(s); //把字母添加到sb中
float x = i * 1.0F * w / 4; //设置当前字符的x轴坐标
g2.setFont(randomFont()); //设置随机字体
g2.setColor(randomColor()); //设置随机颜色
g2.drawString(s, x, h-5); //画图
}
this.text = sb.toString(); //把生成的字符串赋给了this.text
drawLine(image); //添加干扰线
return image;
}
// 返回验证码图片上的文本
public String getText () {
return text;
}
// 保存图片到指定的输出流
public static void output (BufferedImage image, OutputStream out)
throws IOException {
ImageIO.write(image, "JPEG", out);
}
}
以上所述是小编给大家介绍的Android 获取随机验证码功能示例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android
# 随机验证码
# android端实现验证码随机生成功能
# android随机生成圆形云标签效果
# Android自定义wheelview随机选号效果
# Android随机生成验证码
# Android自定义View编写随机验证码
# Android自定义View绘制随机生成图片验证码
# Android自定义View实现随机验证码
# Android通过自定义View实现随机验证码
# Android自定义控件深入学习 Android生成随机验证码
# Android自定义View绘制四位数随机码
# 验证码
# 小编
# 微软
# 给大家
# 宋体
# 粗体
# 在此
# 都能
# 各大
# 给了
# 可选
# 所示
# 所述
# 给我留言
# 感谢大家
# 背景色
# 疑问请
# 有任何
# 画线
# VerifyCode
相关文章:
如何正确选择百度移动适配建站域名?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
网站制作员失业,怎样查看自己网站的注册者?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
如何用景安虚拟主机手机版绑定域名建站?
建站之星代理商如何保障技术支持与售后服务?
高端网站建设与定制开发一站式解决方案 中企动力
如何在云服务器上快速搭建个人网站?
,柠檬视频怎样兑换vip?
如何快速搭建高效服务器建站系统?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
活动邀请函制作网站有哪些,活动邀请函文案?
香港服务器部署网站为何提示未备案?
如何挑选高效建站主机与优质域名?
西安专业网站制作公司有哪些,陕西省建行官方网站?
大连 网站制作,大连天途有线官网?
宝塔新建站点为何无法访问?如何排查?
广德云建站网站建设方案与建站流程优化指南
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
油猴 教程,油猴搜脚本为什么会网页无法显示?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何快速生成凡客建站的专业级图册?
如何通过VPS搭建网站快速盈利?
建站DNS解析失败?如何正确配置域名服务器?
网站按钮制作软件,如何实现网页中按钮的自动点击?
装修招标网站设计制作流程,装修招标流程?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
自助网站制作软件,个人如何自助建网站?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
微信推文制作网站有哪些,怎么做微信推文,急?
内网网站制作软件,内网的网站如何发布到外网?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
定制建站价位费用解析与套餐推荐全攻略
实现虚拟支付需哪些建站技术支撑?
如何在万网ECS上快速搭建专属网站?
如何通过虚拟主机快速搭建个人网站?
如何选择适配移动端的WAP自助建站平台?
建站之星后台密码遗忘如何找回?
安云自助建站系统如何快速提升SEO排名?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何通过智能用户系统一键生成高效建站方案?
如何在建站主机中优化服务器配置?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何配置FTP站点权限与安全设置?
寿县云建站:智能SEO优化与多行业模板快速上线指南
再谈Python中的字符串与字符编码(推荐)
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何批量查询域名的建站时间记录?
*请认真填写需求信息,我们会在24小时内与您取得联系。