我彻底搜索了 SO,但没有得到我的问题的答案。
我想设置一个段落,我将使用 XML 设置它
文本包含标题和步骤以及常规文本。我想以粗体显示标题和步骤,并以普通文本显示。
我可以通过使用不同的 's 来做到这一点,但我怎样才能在同一个 TextView 中做到这一点。
我的意思是使用相同的 TextView 如何为不同的句子设置不同的属性?
我彻底搜索了 SO,但没有得到我的问题的答案。
我想设置一个段落,我将使用 XML 设置它
文本包含标题和步骤以及常规文本。我想以粗体显示标题和步骤,并以普通文本显示。
我可以通过使用不同的 's 来做到这一点,但我怎样才能在同一个 TextView 中做到这一点。
我的意思是使用相同的 TextView 如何为不同的句子设置不同的属性?
使用可扩展字符串
TextView tv = (TextView) findViewById(R.id.tv);
String steps = "Hello Everyone";
String title="Bold Please!";
SpannableString ss1= new SpannableString(title);
ss1.setSpan(new StyleSpan(Typeface.BOLD), 0, ss1.length(), 0);
tv.append(ss1);
tv.append("\n");
tv.append(steps);
有关更多样式检查链接@ http://blog.stylingandroid.com/archives/177
在你的字符串文件中
<string name="your_text">
<![CDATA[
<p> <b>Title</b> </p>
<p><b><i>Step 1</i></b><p>step1 content content content content content content</p></p>
<p><b><i>Step 2</i></b><p>step2 content content content content content content content</p></p>
]]>
</string>
然后在你的活动中
TextView tv=(TextView)findViewById(R.id.textView1);
tv.setText(Html.fromHtml(getString(R.string.your_text)));
并输出
请将此字符串放入res->string.xml
<string name="your_html">
<![CDATA[p><b>This is bold text</b> rementing is simple text
]]>
</string>
现在你可以在需要这个东西的时候使用。
tv.setText(Html.fromHtml(getString(R.string.your_html)));
这是bestway和工作的魅力。
您可以像在 HTML 中一样格式化它:让我们称之为custom_text
<b>Your title here</b>
This is the non-bolded stuff.
然后使用类加载文本Html
:
mTextView.setText(Html.fromHtml(getString(R.string.custom_text)));
这将创建一个可扩展的字符串并将其设置在 TextView 上。
TextView
支持SpannableStrings。您可以String
在 html 中进行自定义或格式化字符串,然后将其设置为tv.setText(Html.fromHtml(yourString));
最好的方法是在字符串资源中。
<string name="sample_string"><![CDATA[<b>Title</b>StackOverflow]]></string>
请注意,粗体标记 ( <b> </b>
) 之间的文本将以粗体显示。同样,您可以设置其他样式。例如。<i>
斜体和<u>
下划线。
希望这有帮助,祝你好运!
kotlin 解决方案:对我来说,问题是我通过数据绑定在 XML 中设置了一个文本。我不得不删除它。然后这开始生效
val spannableStringBuilder = SpannableStringBuilder(headerText)
spannableStringBuilder.setSpan(StyleSpan(Typeface.BOLD), 0, headerText.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
spannableStringBuilder.append(" ")
spannableStringBuilder.append(subText)
textView.text = spannableStringBuilder
相反,使用这个:
一、声明textView
TextView tv1 = (TextView) getActivity().findViewById(R.id.t1);
然后将它的文本设置为你想要的字符串
tv1.setText(Html.fromHtml(getString(R.string.my_text)));
最后,使用为您的 textView 设置字体
tv1.setTypeface(null, Typeface.BOLD);
而且,你完成了。