国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 獲取隨機驗證碼功能示例

2019-10-22 18:33:37
字體:
來源:轉載
供稿:網友

驗證碼功能在各大網站都能用到,下面小編通過實例代碼給大家分享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 獲取隨機驗證碼功能示例,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泌阳县| 宝应县| 陕西省| 永和县| 文昌市| 金堂县| 巫山县| 三都| 色达县| 诏安县| 安化县| 百色市| 新绛县| 封丘县| 新蔡县| 荆门市| 沙坪坝区| 建宁县| 广昌县| 汕头市| 红桥区| 南丹县| 出国| 奎屯市| 抚顺县| 嘉鱼县| 宁强县| 屯门区| 平乡县| 盐津县| 丹寨县| 息烽县| 云和县| 澜沧| 文化| 昂仁县| 孟村| 高台县| 卢氏县| 云阳县| 工布江达县|