2013-10-28 150 views
1

我有TextView,我希望文本的每个单词具有不同的大小和字体。设置不同大小的文本视图的文本

我知道你可以将文本的一部分设置为粗体或带有和标记的下划线。

但如果我需要的文本的一部分,是18SP的大小,并有一个自定义的字体(从资产),而另一部分有不同的自定义字体和大小的器14sp。

我可以拆分TextView的个人TextViews,但我想避免这种情况。

回答

8

你应该使用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 typefaceStyleSpan帮助。

text.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), start, 
        end, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

希望这会帮助你。

+0

我使用AbsoluteSizeSpan,因为您可以在px中设置文本大小,而不是设置文本大小比例的RelativeSizeSpan。 –

相关问题