我有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。 –