复制文件到项目。
class BiggerDotPasswordTransformationMethod : PasswordTransformationMethod() {
override fun getTransformation(source: CharSequence, view: View): CharSequence {
return PasswordCharSequence(super.getTransformation(source, view))
}
private class PasswordCharSequence(private val sequence: CharSequence) : CharSequence by sequence {
val dot = '\u2022'
val bigDot = '●'
override fun get(index: Int): Char = if (sequence[index]==dot) bigDot else sequence[index]
}
}
然后
editText.transformationMethod = BiggerDotPasswordTransformationMethod()
原理:
无非就是文本替换,inputType设置为密码样式时,用户输入文本,隔一段时间或者输入下一个文字的时候,系统默认会将Unicode编码的圆点替换原来的字符。
这里我们检测到如果它是输入的文本,不做改变,是特定的Unicode就替换为大圆点。
网友评论