【问题标题】:Custom font for error message of TextInputLayout in androidandroid中TextInputLayout错误消息的自定义字体
【发布时间】:2017-01-06 03:09:34
【问题描述】:
我正在尝试将 TextInput 布局用于 android 材料设计中可用的浮动标签,其中我使用 app:errorTextAppearance 标志显示错误。对于这个 errorTextAppearance 我无法应用自定义字体。
我可以更改颜色和其他内容,但无法应用自定义字体。
我正在尝试将“请选择问题”的字体样式与“请输入答案”匹配
P.S“请选择问题”是纯文本视图,我可以轻松更改字体。
我无法发布图片,但下面的链接有。
Input Text Layout
你能帮我解决这个问题吗?
【问题讨论】:
标签:
android
material-design
【解决方案1】:
如上所述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);
}
}