Android TextView個(gè)別字體格式設(shè)置小結(jié)

android 在同一個(gè)TextView中如何展現(xiàn)出不同的字體和顏色總結(jié)一下
1.主要是痛通過(guò)String.xml使用html標(biāo)簽靜態(tài)配置然后動(dòng)態(tài)引用
Html.fromHtml(getResources().getString(R.string.myHeadStr));
2.textView 動(dòng)態(tài)設(shè)置
//創(chuàng)建一個(gè) SpannableString對(duì)象 msp = new SpannableString("字體測(cè)試"); //指定區(qū)域設(shè)置字體格式绊起;包括字體樣式酷师、大小、顏色、背景顏色、下劃線、刪除線、上下標(biāo)、鏈接等陨倡。 msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //SpannableString對(duì)象設(shè)置給TextView myTextView.setText(msp);

一 .靜態(tài)配置

方法1、使用 CDATA

<string name="grader"><Data><![CDATA[ ***+內(nèi)容***]]></Data></string>

例如(html標(biāo)簽后續(xù)有簡(jiǎn)單介紹)

<string name="grader"><Data><![CDATA[評(píng)<font size="30" height = "30dp" color="#ff0000"><strong><u><b>%1$1.1f</b></u></strong></font>分 已成交<font color="#00ff00"><b>%2$d</b></font>單]]></Data></string>

結(jié)果:
`評(píng)~分 已成交~單`

注意:<font size="20" color="#999999"></font>中

  • size: 設(shè)置都沒(méi)有效果许布,只能通過(guò)標(biāo)簽<big><small>來(lái)設(shè)置
  • color:"blue","red"等關(guān)鍵字設(shè)置有效兴革;“#999999”有效
方法2、轉(zhuǎn)義HTML標(biāo)簽

<為‘<’轉(zhuǎn)義符,如果不使用則只能在xml里配置有效android:text="@string/amount",若動(dòng)態(tài)設(shè)置則無(wú)效

<string name="amount"><b><u>%1$d</u></b>斤</string>

結(jié)果
~斤

注意:

  • 轉(zhuǎn)義字符:不使用<等轉(zhuǎn)義字符時(shí)杂曲,只能在android:text=""設(shè)置文字庶艾,動(dòng)態(tài)設(shè)置無(wú)效。
  • size: 在<font size="20" color="#999999"></font>中擎勘,size設(shè)置有效果咱揍,標(biāo)簽<big><small>有效
  • color:在<font size="20" color="blue"></font>中,"blue","red"等關(guān)鍵字設(shè)置有效;“#999999”無(wú)效
最后在代碼中設(shè)置

String content = getResources().getString(R.string.content))
//注意變量的使用
String str = String.format(content,125);
text.setText(Html.fromHtml(str));

二 動(dòng)態(tài)設(shè)置

public class TextViewLinkActivity extends Activity {  
TextView mTextView = null;     
SpannableString msp = null;     
@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  
      
    mTextView = (TextView)findViewById(R.id.myTextView);  
      
    //創(chuàng)建一個(gè) SpannableString對(duì)象    
    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)字體的兩倍焦匈,而高度不變  
    //SpannableString對(duì)象設(shè)置給TextView  
    myTextView.setText(sp);   
    //設(shè)置TextView可點(diǎn)擊  
    myTextView.setMovementMethod(LinkMovementMethod.getInstance())  
}
}

用來(lái)標(biāo)識(shí)在 Span 范圍內(nèi)的文本前后輸入新的字符時(shí)是否把它們也應(yīng)用這個(gè)效果血公。分別有
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括括授,后面不包括)坞笙、Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括岩饼,后面包括)荚虚、Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)。

三 相關(guān)屬性

  • html標(biāo)簽

<a href="..."> **定義鏈接內(nèi)容**
<b>
定義粗體文字 **b** 是blod的縮寫
<big> 定義大字體的文字
<blockquote> 引用塊標(biāo)簽 屬性:[Common](http://www.dreamdu.com/xhtml/attribute_collections/#common) -- 一般屬性 [cite](http://www.dreamdu.com/xhtml/attribute_cite/) -- 被引用內(nèi)容的URI
<br> 定義換行 <cite> 表示引用的URI <dfn> 定義標(biāo)簽 **dfn** 是defining instance的縮寫
<div align="...">
<em> 強(qiáng)調(diào)標(biāo)簽 **em** 是emphasis的縮寫
<font size="..." color="..." face="...">
<h1>
<i> 定義斜體文字
[站外圖片上傳中……(1)]
<p> 段落標(biāo)簽,里面可以加入文字,列表,表格等
<small> 定義小字體的文字
<strike> 定義刪除線樣式的文字 不符合標(biāo)準(zhǔn)網(wǎng)頁(yè)設(shè)計(jì)的理念,不贊成使用. strike是strikethrough的縮寫
<strong> 重點(diǎn)強(qiáng)調(diào)標(biāo)簽 <sub> 下標(biāo)標(biāo)簽 **sub** 是subscript的縮寫 <sup> 上標(biāo)標(biāo)簽 **sup** 是superscript的縮寫
<tt> 定義monospaced字體的文字 不贊成使用. 此標(biāo)簽對(duì)中文沒(méi)意義 tt是teletype or monospaced text style的意思
<u> 定義帶有下劃線的文字 u是underlined text style的意思

  • 轉(zhuǎn)義符
    XML只有5個(gè)轉(zhuǎn)義符:< >& " &apos;不合法的XML字符必須被替換為相應(yīng)的實(shí)體籍茧。 如果在XML文檔中使用類似"<" 的字符, 那么解析器將會(huì)出現(xiàn)錯(cuò)誤版述,因?yàn)榻馕銎鲿?huì)認(rèn)為這是一個(gè)新元素的開始。

媽蛋寞冯,這里的轉(zhuǎn)義字符預(yù)覽有效 渴析,已發(fā)布就被轉(zhuǎn)義了

< < 小于號(hào)
> > 大于號(hào)
& & 和
' ' 單引號(hào)
" " 雙引號(hào)

實(shí)體必須以符號(hào)"&"開頭,以符號(hào)";"結(jié)尾吮龄。
注意: 只有"<" 字符和"&"字符對(duì)于XML來(lái)說(shuō)是嚴(yán)格禁止使用的俭茧。剩下的都是合法的,為了減少出錯(cuò)漓帚,使用實(shí)體是一個(gè)好習(xí)慣母债。

  • 變量

%n$ms:代表輸出的是字符串,n代表是第幾個(gè)參數(shù),設(shè)置m的值可以在輸出之前放置空格
%n$md:代表輸出的是整數(shù)毡们,n代表是第幾個(gè)參數(shù)迅皇,設(shè)置m的值可以在輸出之前放置空格,也可以設(shè)為0m,在輸出之前放置m個(gè)0
%n$mf:代表輸出的是浮點(diǎn)數(shù)衙熔,n代表是第幾個(gè)參數(shù)登颓,設(shè)置m的值可以控制小數(shù)位數(shù),如m=2.2時(shí)红氯,輸出格式為00.00

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末框咙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子痢甘,更是在濱河造成了極大的恐慌扁耐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件产阱,死亡現(xiàn)場(chǎng)離奇詭異婉称,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)构蹬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門王暗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人庄敛,你說(shuō)我怎么就攤上這事俗壹。” “怎么了藻烤?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵绷雏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我怖亭,道長(zhǎng)涎显,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任兴猩,我火速辦了婚禮期吓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘倾芝。我一直安慰自己讨勤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布晨另。 她就那樣靜靜地躺著潭千,像睡著了一般。 火紅的嫁衣襯著肌膚如雪借尿。 梳的紋絲不亂的頭發(fā)上刨晴,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼割捅。 笑死奶躯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亿驾。 我是一名探鬼主播嘹黔,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼莫瞬!你這毒婦竟也來(lái)了儡蔓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疼邀,失蹤者是張志新(化名)和其女友劉穎喂江,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旁振,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡获询,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拐袜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吉嚣。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蹬铺,靈堂內(nèi)的尸體忽然破棺而出尝哆,到底是詐尸還是另有隱情,我是刑警寧澤甜攀,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布秋泄,位于F島的核電站,受9級(jí)特大地震影響规阀,放射性物質(zhì)發(fā)生泄漏恒序。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一姥敛、第九天 我趴在偏房一處隱蔽的房頂上張望奸焙。 院中可真熱鬧,春花似錦彤敛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至勿她,卻和暖如春袄秩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工之剧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留郭卫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓背稼,卻偏偏與公主長(zhǎng)得像贰军,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蟹肘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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