dependencies {
implementation 'com.longer:verifycode:1.0.4'
}
- 自带了方框、下划线、圆圈输入框的样式
- 支持自定义验证框长度、字体大小、颜色、验证框宽高度、间距
- 支持选中与非选中边框颜色、内容背景颜色
- 支持自定义选中或非选中背景
- 支持输入类型的设置(是否为数字)
- 支持是否将验证码已密码的方式显示
- 支持银行卡\信用卡 卡号的验证以及卡种,归属银行的查询
- 输入键盘的隐藏
-
可以通过自定义背景,实现很多样式
- app:bgFocus="@drawable/bg_line_center_normal" 中划线 bg_line_center_normal.xml
- app:bgFocus="@drawable/bg_blue_radiu5_solid" 圆角矩形 bg_blue_radiu5_solid.xml
attribute | function name | instruction |
---|---|---|
codeLength | setCodeLength(5) | 验证码长度 默认5 |
codeTextSize | setCodeTextSize(29) | 验证码字体大小 8 |
codeTextColor | setCodeTextColor(Color.RED) | 验证码字体颜色 |
tvWidth | setTvWidth(40) | 验证码框的宽度 |
tvHeight | setTvHeight(40) | 验证码框的高度 |
codeMargin | setCodeMargin(10) | 验证码框间距 |
bgNormal | setBgNormal(R.drawable.bg_line_normal) | 验证码默认背景(使用用户自定义drawable,将无法使用只带方法修改边框颜色) |
bgFocus | setBgFocus(R.drawable.bg_line_focus) | 验证码焦点背景(同上) |
codeStyle | setCodeStyle(1001) | 输入框样式 1000:方框(默认) 1001:圆圈 1002:下划线 |
normalStrokeColor | setNormalStrokeColor(Color.RED) | 正常时边框颜色 |
normalContentColor | setNormalContentColor(Color.RED) | 正常时内容背景颜色 |
focusStrokeColor | setFocusStrokeColor(Color.BLUE) | 焦点时边框颜色 |
focusContentColor | setFocusContentColor(Color.BLUE) | 焦点时内容背景颜色 |
isBold | setBold(true) | 是否加粗 true false |
strokeSize | setStrokeSize(2) | 边框的宽度 |
isNumber | setNumber(false) | 是否输入类型为数字 true(默认) false |
isShowPwd | setShowPwd(true) | 是否隐藏输入为密码符号 true false(默认) |
<com.longer.verifyedittext.PhoneCode
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.longer.verifyedittext.PhoneCode
android:id="@+id/phonecode2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingTop="20dp"
android:paddingBottom="20dp"
app:codeLength="5"
app:codeMargin="10dp"
app:codeStyle="1002"
app:codeTextColor="@color/colorPrimary"
app:codeTextSize="24sp"
app:focusContentColor="#fff"
app:focusStrokeColor="#eb6951"
app:isNumber="false"
app:isShowPwd="false"
app:normalContentColor="#fff"
app:normalStrokeColor="#eee"
app:strokeSize="5dp"
app:tvHeight="45dp"
app:tvWidth="45dp" />
PhoneCode phonecode = findViewById(R.id.phonecode);
//隐藏键盘
phonecode.hideKeyboard();
//设置内容
phonecode.setText("123");
//清除背景样式
phonecode.setBgNormal(null);
phonecode.setBgFocus(null);
//设置监听
phonecode.setOnVCodeCompleteListener(new PhoneCode.OnVCodeInputListener() {
@Override
public void vCodeComplete(String verificationCode) {
vcode = verificationCode;
Toast.makeText(MainActivity.this, "验证码: " + verificationCode, Toast.LENGTH_SHORT).show();
}
@Override
public void vCodeIncomplete(String verificationCode) {
}
});
//显示软键盘
EditText et = phonecode.editText;
et.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
BankInfoBean bankinfobean = new BankInfoBean(cardnum);
//或者
BankInfoBean bankinfobean = new BankInfoBean();
bankinfobean.setTotalBankcode(cardnum);
//验证银行卡是否有效
bankinfobean.checkBankCard(cardnum);
if (checkBankCard(cardnum)) {
String name = bankinfobean.getBankName();
String name = bankinfobean.getCardType();
} else {
Toast.makeText(MainActivity.this, "卡号 " + cardnum + " 不合法,请重新输入", Toast.LENGTH_LONG).show();
}
- 当输入完成后,将自动隐藏软键盘。