废话不多说了、下面一段代码给大家分享android生成栗子图片验证码功能,具体代码如下所示,
进口java.util.Random; 进口android.graphics.Bitmap; 进口android.graphics.Bitmap.Config; 进口android.graphics.Canvas; 进口android.graphics.Color; 进口android.graphics.Paint; 公开课Autjcode { 私有静态Autjcode bmpCode; 私人int宽度=100,高度=60; 私人int base_padding_left=15, range_padding_left=5, range_padding_top base_padding_top=25日=30; 私人int codeLength=4, line_number=2, font_size=25; 私人字符串代码; 私人int padding_left padding_top; 私有静态最终char[]是={' 2 ',' 3 ',' 4 ',' 5 ',' 6 ',' 7 ',' 8 ', ' 9 ',' ',' b ', ' c ', ' d ',‘e’,‘f’,‘g’,‘h’,“j”,“k”、“l”、“米”, ‘n’,‘p’,‘问’,‘r’,‘s’,‘t’,‘你’,‘v’,‘w’,‘x’, ' y ', ' z ', ' ', ' B ', ' C ', ' D ',‘E’,‘F’,‘G’,‘H’,‘我’,‘J’,‘K’,‘L’,‘米’,‘N’, ‘P’,‘问’,‘R’,‘S’,‘T’,‘你’,‘V’,‘W’,‘X’, ' Y ', ' Z '};/* * *获得实例 * * @return */公共静态Autjcode getInstance () { 如果(bmpCode==null) bmpCode=new Autjcode (); 返回bmpCode; } 私人随机随机=new随机();/* * *创建位图 * * @return */公共位图createBitmap () { padding_left=0;//ARGB_8888表示为32位的ARGB位图 位图bp=位图。createBitmap(宽度、高度、Config.ARGB_8888); 帆布c=新画布(bp); 代码=createCode (); c.drawColor (Color.WHITE); 涂漆=new (); paint.setTextSize (font_size); paint.setFakeBoldText(真正的); for (int i=0;我& lt;code.length ();我+ +){ randomTextStyle(油漆); randomPadding (); c.drawText (code.charAt (i) + ", padding_left, padding_top,油漆); } for (int i=0;我& lt;=line_number;我+ +){ 画直线(c、油漆); } c.save (Canvas.ALL_SAVE_FLAG);//保存 c.restore (); 返回英国石油(bp); } 公共字符串getCode () { 返回码; }//验证码 私人字符串createCode () { StringBuilder缓冲=new StringBuilder (); for (int i=0;我& lt;codeLength;我+ +){ buffer.append(字符[random.nextInt (CHARS.length)]); } 返回buffer.toString (); }/* * *划线 * * @param帆布 * @param油漆 */私人空间画直线(帆布画布,油漆涂料){ int颜色=randomColor (); int startX=random.nextInt(宽度); int startY=random.nextInt(高度); int stopX=random.nextInt(宽度); int stopY=random.nextInt(高度); paint.setStrokeWidth (1); paint.setColor(颜色); 画布。画直线(startX startY、stopX stopY,油漆); } 私人int randomColor () { 返回randomColor (1); } 私人int randomColor (int) { int红色=random.nextInt(256)/率; int绿色=random.nextInt(256)/率; int蓝色=random.nextInt(256)/率; 返回的颜色。rgb(红、绿、蓝); } 私人空间randomTextStyle(油漆涂料){ int颜色=randomColor (); paint.setColor(颜色); paint.setFakeBoldText (random.nextBoolean ()); 浮动skewX=random.nextInt (11)/10; skewX=random.nextBoolean () & # 63;skewX: -skewX; paint.setTextSkewX (skewX); } 私人空间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); .createBitmap registerAuthimg.setImageBitmap (Autjcode.getInstance () ());
验证码刷新:
.createBitmap registerAuthimg.setImageBitmap (Autjcode.getInstance () ());
获取当前显示的文字验证码:
.toUpperCase .getCode字符串Autecodeimg=Autjcode.getInstance () () ();
以上所述是小编给大家介绍的Android栗子の图片验证码生成实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!