android中TextInputLayout错误消息的自定义字体

时间:2016-08-30 00:39:24

标签: android material-design

我正在尝试在Android资料设计中使用TextInput Layout for Floating Labels,我使用app:errorTextAppearance标志显示错误。对于此错误文本外观,我无法应用自定义字体。

我可以更改颜色和其他内容,但无法应用自定义字体。

我正在尝试匹配字体样式"请选择问题"用"请输入答案" P.S"请选择问题"是一个纯文本视图,我能够轻松地更改字体。

我无法发布图片但链接下方有图片。

Input Text Layout

请你帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

如上所述here

您可以使用SpannableString设置字体:

SpannableString s = new SpannableString(errorString);
s.setSpan(new TypefaceSpan(font), 0, s.length(),  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mPasswordView.setError(s);

具有特定字体集的自定义Span类:

public class TypefaceSpan extends MetricAffectingSpan {
    private Typeface mTypeface;
    public TypefaceSpan(Typeface typeface) {
        mTypeface = typeface;
    }

    @Override
    public void updateMeasureState(TextPaint p) {
        p.setTypeface(mTypeface);
        p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
    }

    @Override
    public void updateDrawState(TextPaint tp) {
        tp.setTypeface(mTypeface);
        tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
        }
    }