以前一直好奇qq的輸入框裡面是如何出現表情的,今天看了下這個,心中發出「原來是這樣啊」的感嘆。
通常情況下,我們都是使用字串型別的變數,直接放置在textview.settext()的引數裡面的。這樣只能單純的輸出字串。如果要給textview加上特殊的文字效果,就要使用spannablestring這個類了。
用法如下:
new乙個spannablestring物件,將要顯示的字串作為構造方法的引數傳入。
呼叫spannablestring.setspan(object, int, int, int)方法進行設定。第乙個引數為需要設定的樣式,有很多個類可以選擇,都在這裡啦:
官方文件上面那裡的直接子類和間接子類都是可以用的樣式。
第二引數是開始的位置,0表示第乙個字元
第三個引數是結束的位置
第四個引數是乙個表示替換的位置是否會影響開頭和結尾,誒……我試了下發現沒什麼變化呢……
然後就是把這個spannablestring物件傳給textview.settext()方法的引數就好了。
**如下:
publicclass mainactivity extends
activity
class textclickspan extends
clickablespan
}}
其實這個感覺就像是那種替換一樣~
SpannableString用法注意
正確的方法 使用absolutesizespan時要每次都new乙個新物件出來,如果定義好乙個,連續使用,則只有最後乙個生效。前面使用的都回失去效果。如下使用 spannablestring spanstring new spannablestring sb.tostring spanstring....
使用SpannableString實現微博內容
一條微博中有五種型別的資料,分別是 我們首先需要使用正規表示式找出這些元素,然後使用spannablestring設定不同的樣式 span 首先建立乙個spannablestring,將文字內容傳進去 spannablestring spannablestring new spannablestri...
關於SpannableString文字類詳解
textview txtinfo textview findviewbyid r.id.tv spannablestring 文字類,包含不可變的文字但可以用已有物件替換和分離。可變文字類參考spannablestringbuilder spannablestring ss new spannabl...