Android栗子の图片验证码生成实例代码

Android栗子の图片验证码生成实例代码,第1张

概述废话不多说了,下面一段代码给大家分享android生成栗子图片验证码功能,具体代码如下所示;

废话不多说了,下面一段代码给大家分享androID 生成栗子图片验证码功能,具体代码如下所示;

import java.util.Random;import androID.graphics.Bitmap;import androID.graphics.Bitmap.Config;import androID.graphics.Canvas;import androID.graphics.color;import androID.graphics.Paint;public class Autjcode {  private static Autjcode bmpCode;  private int wIDth = 100,height = 60;  private int base_padding_left = 15,range_padding_left = 5,base_padding_top = 25,range_padding_top = 30;  private int codeLength = 4,line_number = 2,Font_size = 25;  private String code;  private int padding_left,padding_top;  private static final char[] CHARS = { '2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','j','k','l','m','n','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z' };  /**   * 获得实例   *    * @return   */  public static Autjcode getInstance() {    if (bmpCode == null)      bmpCode = new Autjcode();    return bmpCode;  }  private Random random = new Random();  /**   * 创建位图   *    * @return   */  public Bitmap createBitmap() {    padding_left = 0;    // ARGB_8888表示为32位的ARGB位图    Bitmap bp = Bitmap.createBitmap(wIDth,height,Config.ARGB_8888);    Canvas c = new Canvas(bp);    code = createCode();    c.drawcolor(color.WHITE);    Paint paint = new Paint();    paint.setTextSize(Font_size);    paint.setFakeBoldText(true);    for (int i = 0; i < code.length(); i++) {      randomTextStyle(paint);      randompadding();      c.drawText(code.charat(i) + "",padding_left,padding_top,paint);    }    for (int i = 0; i <= line_number; i++) {      drawline(c,paint);    }    c.save(Canvas.ALL_SAVE_FLAG);// 保存    c.restore();    return bp;  }  public String getCode() {    return code;  }  // 验证码  private String createCode() {    StringBuilder buffer = new StringBuilder();    for (int i = 0; i < codeLength; i++) {      buffer.append(CHARS[random.nextInt(CHARS.length)]);    }    return buffer.toString();  }  /**   * 划线   *    * @param canvas   * @param paint   */  private voID drawline(Canvas canvas,Paint paint) {    int color = randomcolor();    int startX = random.nextInt(wIDth);    int startY = random.nextInt(height);    int stopX = random.nextInt(wIDth);    int stopY = random.nextInt(height);    paint.setstrokeWIDth(1);    paint.setcolor(color);    canvas.drawline(startX,startY,stopX,stopY,paint);  }  private int randomcolor() {    return randomcolor(1);  }  private int randomcolor(int rate) {    int red = random.nextInt(256) / rate;    int green = random.nextInt(256) / rate;    int blue = random.nextInt(256) / rate;    return color.rgb(red,green,blue);  }  private voID randomTextStyle(Paint paint) {    int color = randomcolor();    paint.setcolor(color);    paint.setFakeBoldText(random.nextBoolean());    float skewX = random.nextInt(11) / 10;    skewX = random.nextBoolean() ? skewX : -skewX;    paint.setTextSkewX(skewX);  }  private voID randompadding() {    padding_left += base_padding_left + random.nextInt(range_padding_left);    padding_top = base_padding_top + random.nextInt(range_padding_top);  }}

使用方法:

初始化:

registerauthimg = (ImageVIEw) findVIEwByID(R.ID.registerauthimg);registerauthimg.setimageBitmap(Autjcode.getInstance().createBitmap());

验证码刷新:

registerauthimg.setimageBitmap(Autjcode.getInstance().createBitmap());

获取当前显示的文字验证码:

String Autecodeimg = Autjcode.getInstance().getCode().toupperCase();

总结

以上所述是小编给大家介绍的AndroID栗子の图片验证码生成实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

总结

以上是内存溢出为你收集整理的Android栗子の图片验证码生成实例代码全部内容,希望文章能够帮你解决Android栗子の图片验证码生成实例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1143377.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存