我有TextView,我希望文本的每个单词具有不同的大小和字体。设置不同大小的文本视图的文本
我知道你可以将文本的一部分设置为粗体或带有和标记的下划线。
但如果我需要的文本的一部分,是18SP的大小,并有一个自定义的字体(从资产),而另一部分有不同的自定义字体和大小的器14sp。
我可以拆分TextView的个人TextViews,但我想避免这种情况。
我有TextView,我希望文本的每个单词具有不同的大小和字体。设置不同大小的文本视图的文本
我知道你可以将文本的一部分设置为粗体或带有和标记的下划线。
但如果我需要的文本的一部分,是18SP的大小,并有一个自定义的字体(从资产),而另一部分有不同的自定义字体和大小的器14sp。
我可以拆分TextView的个人TextViews,但我想避免这种情况。
你应该使用RelativeSizeSpan
,对于不同的字体大小的参考RelativeSizeSpan。
TextView tv;
final SpannableString text = new SpannableString("Hello World");
text.setSpan(new RelativeSizeSpan(2.0f), 0, 5,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new RelativeSizeSpan(1.5f), 5, 11,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(text);
对于FontStyle使用StyleSpan
参考StyleSpan
因此,使用可以使用custom typeface
与StyleSpan帮助。
text.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), start,
end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
希望这会帮助你。
您可以与所有你喜欢的风格写HTML代码,然后在setText()
方法使用Html.fromHtml()
:
如:
myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>"));
或者:
参考这个问题。它可能会帮助你: Custom Textview with Html text and Custom Font whole Android application
如果我想从资产中使用自定义字体会怎么样? – user1940676
我编辑了我的答案......也许它会帮助你 –
我使用AbsoluteSizeSpan,因为您可以在px中设置文本大小,而不是设置文本大小比例的RelativeSizeSpan。 –