2013-10-28 74 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。 –

相關問題