Android开发教程随机数字验证码

Android开发教程随机数字验证码

随机数验证码,在图中显示,让用户输入对不对

一、思路:

自定义控件CheckView

二、效果图:
三、关键代码:
java 复制代码
public class CheckView extends View {
    Context mContext;
    int [] CheckNum = null;
    Paint mTempPaint = new Paint();
    // 验证码
    public CheckView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        mTempPaint.setAntiAlias(true);
        mTempPaint.setTextSize(Config.TEXT_SIZE);
        mTempPaint.setStrokeWidth(3);
    }
    public void onDraw(Canvas canvas){
        canvas.drawColor(Config.COLOR);
        final int height = getHeight();//获得CheckView控件的高度
        final int width = getWidth();//获得CheckView控件的宽度
        int dx = 40;
        for(int i = 0; i < 4; i ++){//绘制验证控件上的文本
            canvas.drawText("" + CheckNum[i],  dx, CheckUtil.getPositon(height), mTempPaint);
            dx += width/ 5;
        }
        int [] line;
        for(int i = 0; i < Config.LINE_NUM; i ++){//划线
            line = CheckUtil.getLine(height, width);
            canvas.drawLine(line[0], line[1], line[2], line[3], mTempPaint);
        }
        // 绘制小圆点
        int [] point;
        for(int i = 0; i < Config.POINT_NUM; i ++)    {//画点
            point=CheckUtil.getPoint(height, width);
            canvas.drawCircle(point[0], point[1], 1, mTempPaint);
        }
    }
    public void setCheckNum(int [] chenckNum) {//设置验证码
        CheckNum = chenckNum;
    }
    public int[] getCheckNum() {//获得验证码
        return CheckNum;
    }
    public void invaliChenkNum() {
        invalidate();
    }
}
四、项目demo源码结构图:

有问题或者需要完整源码的私信我

相关推荐
巴德鸟9 分钟前
DaVinci 常用技巧 关键帧 自动字幕 追踪 音频 冻结帧 快捷键 多轨道字幕 扩充边缘
android·编辑器·音视频·视频·davinci·davin
学习使我健康39 分钟前
Android 广播介绍详情
android·开发语言·kotlin
dalancon1 小时前
AudioTrack Start 执行流程分析
android
众少成多积小致巨1 小时前
Android 初始化语言入门
android·linux·c++
Carson带你学Android2 小时前
谁才是地表最强 Android Agent 大模型?Google官方测评来了!
android·openai
followYouself2 小时前
ASM开源库实现函数耗时插桩
android·asm·asm插桩·字节码插桩
TO_ZRG2 小时前
Android Content Provider 基础
android·jvm·oracle
studyForMokey2 小时前
【Android面试】数据库
android·数据库·面试
胡利光3 小时前
Harness Engineering 03|Eval & Trace Harness:验证和追溯的工程组织
android·开发语言·kotlin
jvvz afqh3 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql