TextView SpannableString設(shè)置屬性

本文轉(zhuǎn)自 http://blog.csdn.net/xiangzilv1987/article/details/8212064

在Android中烟零,TextView是我們最常用的用來顯示文本的控件去件。
一般情況下系枪,TextView中的文本都是一個(gè)樣式炼杖。那么如何對(duì)于TextView中各個(gè)部分的文本來設(shè)置字體粱快,大小市俊,顏色惊窖,樣式,以及超級(jí)鏈接等屬性呢哀蘑?下面我們通過SpannableString的具體實(shí)例操作來演示一下诚卸。

//創(chuàng)建一個(gè) SpannableString對(duì)象
SpannableString msp = new SpannableString("字體測(cè)試字體大小一半兩倍前景色背景色正常粗體斜體粗斜體下劃線刪除線x1x2電話郵件網(wǎng)站短信彩信地圖X軸綜合");

  //設(shè)置字體(default,default-bold,monospace,serif,sans-serif)    
  msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
  msp.setSpan(new TypefaceSpan("serif"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
      
  //設(shè)置字體大小(絕對(duì)值,單位:像素)     
  msp.setSpan(new AbsoluteSizeSpan(20), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
  msp.setSpan(new AbsoluteSizeSpan(20,true), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //第二個(gè)參數(shù)boolean dip绘迁,如果為true合溺,表示前面的字體大小單位為dip,否則為像素缀台,同上棠赛。    
      
  //設(shè)置字體大小(相對(duì)值,單位:像素) 參數(shù)表示為默認(rèn)字體大小的多少倍    
  msp.setSpan(new RelativeSizeSpan(0.5f), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //0.5f表示默認(rèn)字體大小的一半    
  msp.setSpan(new RelativeSizeSpan(2.0f), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //2.0f表示默認(rèn)字體大小的兩倍    
      
  //設(shè)置字體前景色    
  msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //設(shè)置前景色為洋紅色    
      
  //設(shè)置字體背景色    
  msp.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //設(shè)置背景色為青色    
   
  //設(shè)置字體樣式正常膛腐,粗體睛约,斜體,粗斜體    
  msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //正常    
  msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗體    
  msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //斜體    
  msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 24, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗斜體    
      
  //設(shè)置下劃線    
  msp.setSpan(new UnderlineSpan(), 27, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
      
  //設(shè)置刪除線    
  msp.setSpan(new StrikethroughSpan(), 30, 33, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
      
  //設(shè)置上下標(biāo)    
  msp.setSpan(new SubscriptSpan(), 34, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //下標(biāo)       
  msp.setSpan(new SuperscriptSpan(), 36, 37, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //上標(biāo)                
      
  //超級(jí)鏈接(需要添加setMovementMethod方法附加響應(yīng))    
  msp.setSpan(new URLSpan("tel:4155551212"), 37, 39, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //電話       
  msp.setSpan(new URLSpan("mailto:webmaster@google.com"), 39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //郵件       
  msp.setSpan(new URLSpan("http://www.baidu.com"), 41, 43, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //網(wǎng)絡(luò)       
  msp.setSpan(new URLSpan("sms:4155551212"), 43, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //短信   使用sms:或者smsto:    
  msp.setSpan(new URLSpan("mms:4155551212"), 45, 47, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //彩信   使用mms:或者mmsto:    
  msp.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //地圖       
      
  //設(shè)置字體大姓苌怼(相對(duì)值,單位:像素) 參數(shù)表示為默認(rèn)字體寬度的多少倍    
  msp.setSpan(new ScaleXSpan(2.0f), 49, 51, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默認(rèn)字體寬度的兩倍辩涝,即X軸方向放大為默認(rèn)字體的兩倍,而高度不變    
        
  //設(shè)置項(xiàng)目符號(hào)    
  msp.setSpan(new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN), 0 ,53, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第一個(gè)參數(shù)表示項(xiàng)目符號(hào)占用的寬度勘天,第二個(gè)參數(shù)為項(xiàng)目符號(hào)的顏色    
  tv_textView.setText(msp);    
  tv_textView.setMovementMethod(LinkMovementMethod.getInstance());    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末怔揩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子脯丝,更是在濱河造成了極大的恐慌商膊,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巾钉,死亡現(xiàn)場(chǎng)離奇詭異翘狱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)砰苍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門潦匈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阱高,“玉大人,你說我怎么就攤上這事茬缩〕嗑” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵凰锡,是天一觀的道長未舟。 經(jīng)常有香客問我,道長掂为,這世上最難降的妖魔是什么裕膀? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮勇哗,結(jié)果婚禮上昼扛,老公的妹妹穿的比我還像新娘。我一直安慰自己欲诺,他們只是感情好抄谐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扰法,像睡著了一般蛹含。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上塞颁,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天浦箱,我揣著相機(jī)與錄音,去河邊找鬼祠锣。 笑死憎茂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锤岸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼板乙,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼是偷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起募逞,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蛋铆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后放接,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刺啦,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年纠脾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玛瘸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜕青。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖糊渊,靈堂內(nèi)的尸體忽然破棺而出右核,到底是詐尸還是另有隱情,我是刑警寧澤渺绒,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布贺喝,位于F島的核電站,受9級(jí)特大地震影響宗兼,放射性物質(zhì)發(fā)生泄漏躏鱼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一殷绍、第九天 我趴在偏房一處隱蔽的房頂上張望染苛。 院中可真熱鬧,春花似錦篡帕、人聲如沸殖侵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拢军。三九已至,卻和暖如春怔鳖,著一層夾襖步出監(jiān)牢的瞬間茉唉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來泰國打工结执, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留度陆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓献幔,卻偏偏與公主長得像懂傀,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜡感,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容