1. 程式人生 > >Android TextView字型樣式設定

Android TextView字型樣式設定

在Android的開發中,對字型樣式的設定是必不可少的,普通的設定主要包括字型的顏色,大小。這些都太小兒科了,略過。但是當一個TextView要顯示多種樣式的時候就不一樣了。如要求其中的某幾個文字加上特殊的顏色,或者字型加大等。別的不多說,先上一個效果圖說明下:
這裡寫圖片描述
下面針對上圖效果做對應的程式碼展示:

1.字型加粗

//字型加粗
textview.getPaint().setFlags(Paint.FAKE_BOLD_TEXT_FLAG);
textview.getPaint().setAntiAlias(true);//抗鋸齒

2.文字加上中劃線(又稱刪除線)

//中劃線(刪除線)
textview.getPaint
().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); textview.getPaint().setAntiAlias(true);//抗鋸齒

3.文字加上下劃線

// 下劃線
textview.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
textview.getPaint().setAntiAlias(true);

4.文字設定不同的顏色和背景色

SpannableStringBuilder sb = new SpannableStringBuilder("字型多種顏色一&背景色");
sb.setSpan
(new ForegroundColorSpan(Color.RED),0,2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sb.setSpan(new ForegroundColorSpan(Color.YELLOW),2,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sb.setSpan(new ForegroundColorSpan(Color.BLUE), 5, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //背景色 sb.setSpan(new BackgroundColorSpan(Color.GREEN
), 7, sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textview.setText(sb);

5.文字設定不同的顏色(html格式)

//字型顏色多樣,設定其他樣式也可以使用
textview.setText(Html.fromHtml("<font color='red'>字型</font><font color='#00ff00'>多種顏色</font><font color='#0000ff'></font>"));

6.字型樣式大小不一(有相對大小和絕對大小)

//字型大小不一
SpannableStringBuilder sb1 = new SpannableStringBuilder("字型大小樣式不一");
sb1.setSpan(new AbsoluteSizeSpan(80), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sb1.setSpan(new AbsoluteSizeSpan(40), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//絕對大小
//sb1.setSpan(new RelativeSizeSpan(40), 4, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//相對大小
sb1.setSpan(new AbsoluteSizeSpan(60), 5, sb1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb1);

7.設定文字上標和上標字元大小

sb.append("設定字元上標");
sb.setSpan(new SuperscriptSpan(), 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sb.setSpan(new RelativeSizeSpan(0.5f),2,3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb);

8.設定文字下標

sb.append("設定字元下標");
sb.setSpan(new SubscriptSpan(), 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb);

9.設定文字X方向縮放

//;貌似沒有Y方向的縮放,但是我們可以通過設定TextView的大小和X方向縮放實現,在此不舉例。
sb.append("設定字型縮放。。。");
sb.setSpan(new ScaleXSpan(2f), 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sb.setSpan(new ScaleXSpan(0.5f), 4, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(sb);
   到此,簡單的例子程式碼全部上完了,這僅僅是一個思想,在開發過程中需要我們根據不同的情形去使用。如1也可以設定為部分字型加粗,用的方法可以是Html.HtmlFomat()或者是setSpan。2,3同理。在實際的開發過程中,建議講各個功能分別封裝成一個單獨的方法,這樣用起來比較方便。對於複雜的功能也可以根據需求來封裝。由於本人的知識水平能力有限,如果錯誤或者知識不全面,請提出,共同進步!