gpt4 book ai didi

android - 更改 EditText setError() 的字体系列

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:22 24 4
gpt4 key购买 nike

我想更改EditText setError() 的字体系列。

我已经试过了:

editText.setError(Html.fromHtml("<span style=\"font-family: sans-serif !important\">hello</span>"));

当用户选择另一种字体时,我想更改三星手机中错误消息的字体系列。

任何想法将不胜感激。

提前致谢

最佳答案

你可以试试这个:

Typeface typeFaceDefault = Typeface.createFromAsset(getAssets(), "BYekan.ttf");

TextInputLayout inputLayout = (TextInputLayout) view.findViewById(R.id.lyt_input);

SpannableStringBuilder ssbuilder = new SpannableStringBuilder(getString(R.string.err_wrong_input));
ssbuilder.setSpan(new CustomTypefaceSpan("", ActivityMain.typeFaceDefault), 0, ssbuilder.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
inputLayout.setError(ssbuilder);

那么你的元素中也包含了这个文件:

public class CustomTypefaceSpan extends TypefaceSpan {

private final Typeface newType;

public CustomTypefaceSpan(String family, Typeface type) {
super(family);
newType = type;
}

@Override
public void updateDrawState(TextPaint ds) {
applyCustomTypeFace(ds, newType);
}

@Override
public void updateMeasureState(TextPaint paint) {
applyCustomTypeFace(paint, newType);
}

private static void applyCustomTypeFace(Paint paint, Typeface tf) {
int oldStyle;
Typeface old = paint.getTypeface();
if (old == null) {
oldStyle = 0;
} else {
oldStyle = old.getStyle();
}

int fake = oldStyle & ~tf.getStyle();
if ((fake & Typeface.BOLD) != 0) {
paint.setFakeBoldText(true);
}

if ((fake & Typeface.ITALIC) != 0) {
paint.setTextSkewX(-0.25f);
}

paint.setTypeface(tf);
}
}

关于android - 更改 EditText setError() 的字体系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com