android-使用SpannableString [ Builder]和RTF文本

android-使用SpannableString [ Builder]和RTF文本,第1张

概述我正在尝试构建富文本格式,其中第一部分显示为“Lookingfor:”,并以粗体显示,但其余部分未以粗体显示.这是我的代码:SpannableStringBuilderlookingForString=newSpannableStringBuilder("Lookingfor:");lookingForString.setSpan(newStyleSpan(Typeface.BOLD),0,looki

我正在尝试构建富文本格式,其中第一部分显示为“ Looking for:”,并以粗体显示,但其余部分未以粗体显示.这是我的代码:

SpannableStringBuilder lookingForString = new SpannableStringBuilder("Looking for: ");lookingForString.setSpan(new StyleSpan(Typeface.BolD), 0, lookingForString.length(),                                         0);int start = (lookingForString.length() - 1);for (int i = 0; i < looking_for_names.length(); ++i) {// No comma before the first and after the last 'Looking for' value    if (i > 0) {        lookingForString.append(", ");        lookingForString.setSpan(new StyleSpan(Typeface.norMAL), start,                                (lookingForString.length() - 1), 0);        start += 2;    }    String lfItem = looking_for_names.optString(i);    lookingForString.append(lfItem);    lookingForString.setSpan(new StyleSpan(Typeface.norMAL), start,                            (lookingForString.length() - 1), 0);    start += lfItem.length();}tvLookingFor.setText(lookingForString, BufferType.SPANNABLE);

但是,结果是整行都加粗了.我已经尝试了许多变体,但是我无法设法正确控制字体……无论我如何编码,它都倾向于保留第一个字体.

如何仅使“ Looking for:”为粗体,而其余文本为常规(非粗体)?

解决方法:

如果只需要加粗文本部分,则只需使用HTML标签.

String HTMLString="<b>Looking for: Bold</b> and normal";tvLookingFor.setText(HTML.fromHTML(HTMLString), TextVIEw.BufferType.SPANNABLE);
总结

以上是内存溢出为你收集整理的android-使用SpannableString [/ Builder]和RTF文本全部内容,希望文章能够帮你解决android-使用SpannableString [/ Builder]和RTF文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1093058.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存