前言
TextView 可以說是 Android 中最簡單联逻、最常見的文字控件了攘须,幾乎每個(gè)頁面都有 TextView 的身影,絕大多數(shù)情況我們用 TextView 只是單純地顯示一個(gè)文本呢堰,但是 TextView 的功能遠(yuǎn)遠(yuǎn)不止如此哦屿聋,簡單的 TextView 也能千變?nèi)f化顯示出各種效果,這一切都要?dú)w功于 SpannableString臭墨。
TextView 和 SpannableString 一起使用具體有哪些神奇的地方呢赔嚎?本場 Chat 將全面地介紹 SpannableString 的用法,讓你的 TextView 不再簡單胧弛。
SpannableString
在 Android 中尤误,常規(guī)的字符串類就是 String 或者 Charsequence,String 用的最多结缚,有些人可能對 Charsequence 都有點(diǎn)陌生损晤,EditText 的 getText() 返回的就是 Charsequence 對象。但是今天我們要介紹的 SpannableString 就是另一種更強(qiáng)大的字符串類红竭。
Spannable 是什么意思尤勋?英語詞典上還真不太好查,我自己的理解的意思是:可測量茵宪、可塑造的最冰,所以 SpannableString 就是一種可測量可塑造的字符串。
1)默認(rèn) TextView 樣式
默認(rèn) TextView 樣式我們再熟悉不過了稀火,看下截圖暖哨,沒啥好說的。
2)自定義字體
SpannableString 可以給 TextView 設(shè)置自定義字體樣式凰狞,并且可以指定某幾個(gè)字篇裁,其實(shí) SpannableString 幾乎所有的屬性可可以指定到具體某幾個(gè)字。
SpannableString ss = new SpannableString(txCustomTypeface.getText());
ss.setSpan(new TypefaceSpan("sans-serif"), 2, 4, SPAN_EXCLUSIVE_EXCLUSIVE);
txCustomTypeface.setText(ss);
這里用到了一個(gè)新的類:TypefaceSpan服球,它就是用來設(shè)置字體樣式的茴恰,參數(shù)有 5 個(gè)可選值:default、default-bold斩熊、monospace往枣、serif、sans-serif粉渠。后面的 2 和 4 是需要生效的起始位置和結(jié)束位置分冈。