我正在尝试在Android Studio的密码提示字段中使用自定义字体。
在XML中将“编辑文本”设置为inputType="textPassword"
之后,字体更改为与我选择的字体不同的字体。所有其他“编辑文本”都具有正确的自定义字体。
我已经尝试遵循Java代码中的this解决方案(将 Typeface.DEFAULT 替换为 R.font.my_font ),但没有任何反应
EditText password = (EditText) findViewById(R.id.register_password_text);
password.setTypeface(R.font.my_font);
password.setTransformationMethod(new PasswordTransformationMethod());
我还尝试了this解决方案,但未成功
Typeface cache = edtPassword.getTypeface();
edtPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
edtPassword.setTypeface(cache);
关于这些解决方案中可以尝试的内容或可能缺少的内容的任何想法?
PS:我正在使用 montserrat_regular 字体
答案 0 :(得分:0)
之所以发生,是因为您要在其中传递字体的ID password.setTypeface(R.font.my_font)而不是TypeFace对象。您需要在setTypeFace()方法中传递 TypeFace 对象,因此要从字体资源ID中创建TypeFace对象,只需添加代码
Typeface typeface = ResourcesCompat.getFont(this, R.font.my_font);
password.setTypeface(typeface);
我认为这应该可行。