我在SO上进行了彻底的搜索,但没有找到我的问题的答案。
我想设置一个段落,我将使用XML来设置它。
这段文字包含标题、步骤和常规文本。我想将标题和步骤设置为粗体,其余部分为普通文本。
我可以使用不同的 '< span>' 来实现,但是如何在同一个TextView中进行不同句子的设置呢?
我的意思是,如何使用同一个TextView为不同的句子设置不同的属性?
我在SO上进行了彻底的搜索,但没有找到我的问题的答案。
我想设置一个段落,我将使用XML来设置它。
这段文字包含标题、步骤和常规文本。我想将标题和步骤设置为粗体,其余部分为普通文本。
我可以使用不同的 '< span>' 来实现,但是如何在同一个TextView中进行不同句子的设置呢?
我的意思是,如何使用同一个TextView为不同的句子设置不同的属性?
使用Spannable String
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)));
并输出
custom_text
。<b>Your title here</b>
This is the non-bolded stuff.
然后使用Html
类加载文本:
mTextView.setText(Html.fromHtml(getString(R.string.custom_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)));
这是最佳方式,并且非常有效。
TextView
支持可扩展字符串。您可以制作自定义String
,或者以html格式设置字符串,然后使用tv.setText(Html.fromHtml(yourString));
进行设置。
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
<string name="sample_string"><![CDATA[<b>Title</b>StackOverflow]]></string>
<b> </b>
)之间的文本将以粗体显示。同样,您可以设置其他样式。例如,<i>
表示斜体,<u>
表示下划线。首先,声明textView
TextView tv1 = (TextView) getActivity().findViewById(R.id.t1);
然后将其文本设置为您想要的字符串
tv1.setText(Html.fromHtml(getString(R.string.my_text)));
tv1.setTypeface(null, Typeface.BOLD);
好了,完成了。