最近需求要用到点选验证码,百度一波之后发现android端的点选验证码基本没有,没办法只能造轮子了,初步实现功能,欢迎指教,纠正!
效果截图如下
github项目地址 https://github.com/zhengshuaizhou/verifyCode
项目中两个主要的类,一个是生成汉字的类,一个是继承RelativeLayout的自定义布局
自定义布局在xml文件中 直接使用就行,设置宽高即可
在activity中使用的时候是这样的
tv = findViewById(R.id.tv);
cf = findViewById(R.id.cf);
bt = findViewById(R.id.bt);
//设置静态资源背景图
cf.setBackground(ContextCompat.getDrawable(this,R.drawable.douyu));
String str = "请点选 " + cf.getVerifyText();
tv.setText(str);
//验证回调
cf.setOnVerifyListener(new ClickVerifyCode.VerifyListener() {
@Override
public void success() {
Toast.makeText(MainActivity.this,"验证成功",Toast.LENGTH_LONG).show();
}
@Override
public void fail() {
Toast.makeText(MainActivity.this,"验证失败",Toast.LENGTH_LONG).show();
}
});
//重置
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
cf.reSet();
String str = "请点选 " + cf.getVerifyText();
tv.setText(str);
}
});
有待优化,有兴趣的可以一起优化一下