diff --git a/verificationcodeview/src/main/java/com/jyn/vcview/AsteriskPasswordTransformationMethod.java b/verificationcodeview/src/main/java/com/jyn/vcview/AsteriskPasswordTransformationMethod.java new file mode 100644 index 0000000..9fde6e5 --- /dev/null +++ b/verificationcodeview/src/main/java/com/jyn/vcview/AsteriskPasswordTransformationMethod.java @@ -0,0 +1,37 @@ +package com.jyn.vcview; + +import android.text.method.PasswordTransformationMethod; +import android.view.View; + +/** + * Created by jiao on 2019/8/8. + */ +public class AsteriskPasswordTransformationMethod extends PasswordTransformationMethod { + @Override + public CharSequence getTransformation(CharSequence source, View view) { + return new PasswordCharSequence(source); + } + + private class PasswordCharSequence implements CharSequence { + private CharSequence mSource; + + public PasswordCharSequence(CharSequence source) { + mSource = source; // Store char sequence + } + + @Override + public char charAt(int index) { + return '•'; // This is the important part + } + + @Override + public int length() { + return mSource.length(); // Return default + } + + @Override + public CharSequence subSequence(int start, int end) { + return mSource.subSequence(start, end); // Return default + } + } +} \ No newline at end of file diff --git a/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java b/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java index e13939a..0a13baa 100644 --- a/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java +++ b/verificationcodeview/src/main/java/com/jyn/vcview/VerificationCodeView.java @@ -209,7 +209,7 @@ public class VerificationCodeView extends LinearLayout implements TextWatcher, V break; case NUMBERPASSWORD: editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD); - editText.setTransformationMethod(PasswordTransformationMethod.getInstance()); + editText.setTransformationMethod(new AsteriskPasswordTransformationMethod()); break; case TEXT: editText.setInputType(InputType.TYPE_CLASS_TEXT);