无法在密码提示中使用自定义字体Android Studio

时间:2019-08-21 10:49:19

标签: android fonts passwords

我正在尝试在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 字体

1 个答案:

答案 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);

我认为这应该可行。