热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android自定义控件深入学习Android生成随机验证码

这篇文章主要再次为大家介绍了Android自定义控件,以及针对自定义view学习,实战演练了Android生成随机验证码的详细过程,感兴趣的小伙伴们可以参考一下

在上一篇的文章中介绍了自定义控件的属性,详情见《详解Android自定义控件属性TypedArray以及attrs》。那么在这基础上实现随机验证码生成,里面的代码是自定义控件以及涉及到自定义view绘画。
1、先看实现的效果图


看到这个效果图是不是感觉还可以。那么就看看源码吧。
2、attr文件

<&#63;xml version="1.0" encoding="utf-8"&#63;> 
 
 
  
  
  
 
  
   
   
   
  
 
 

3、布局layout

 
 
  
 
   
 
   
  
 
  
 
   
 
   
 
    
   
  
 
 

4、自定义AuthCodeView.class
继承View,重写了

onMeasure(int widthMeasureSpec, int heightMeasureSpec)

onDraw(Canvas canvas)方法。
看代码,有详细注释了。

package com.example.authcodeview.view; 
 
import java.util.Random; 
 
import com.example.authcodeview.R; 
 
import android.content.Context; 
import android.content.res.TypedArray; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.Rect; 
import android.util.AttributeSet; 
import android.util.TypedValue; 
import android.view.View; 
 
public class AuthCodeView extends View 
{ 
 // 点数设置 
 public static final int POINT_NUM = 100; 
 // 线段数设置 
 public static final int LINE_NUM = 2; 
 //文本 
 private String mTitleText; 
 // 文本的颜色 
 private int mTitleTextColor; 
 // 文本的大小 
 private int mTitleTextSize; 
  
 String[] mCheckNum = new String[4]; 
 Random random = new Random(); 
  
 //绘制时控制文本绘制的范围 
 private Rect mBound; 
 private Paint mPaint; 
 
 public AuthCodeView(Context context, AttributeSet attrs) 
 { 
  this(context, attrs, 0); 
 } 
 
 public AuthCodeView(Context context) 
 { 
  this(context, null); 
 } 
 
 /** 
  * 获得我自定义的样式属性 
  * 
  * @param context 
  * @param attrs 
  * @param defStyle 
  */ 
 public AuthCodeView(Context context, AttributeSet attrs, int defStyle) 
 { 
  super(context, attrs, defStyle); 
  /** 
   * 获得我们所定义的自定义样式属性 
   */ 
  TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.AuthCodeView, defStyle, 0); 
   
  //获取在attr文件下,名字为AuthCodeView的declare-styleable属性有几个 
  int n = a.getIndexCount(); 
  for (int i = 0; i 

源码下载:Android生成随机验证码Demo

以上就是本文的全部内容,希望对大家的学习有所帮助。


推荐阅读
author-avatar
手机用户2502872401
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有