1. 程式人生 > >Textview設定文字樣式和顏色

Textview設定文字樣式和顏色

1.    自定義字型
可以使用setTypeface(Typeface)方法來設定文字框內文字的字型,而android的Typeface又使用TTF字型檔案來設定字型
所以,我們可以在程式中放入TTF字型檔案,在程式中使用Typeface來設定字型:第一步,在assets目錄下新建fonts目錄,把TTF字型檔案放到這裡。第二步,程式中呼叫:
TextViewtv = (TextView)findViewById(R.id.textView);
AssetManagermgr=getAssets();//得到AssetManager
Typefacetf=Typeface.createFromAsset(mgr, "fonts/mini.TTF");//根據路徑得到Typeface

tv.setTypeface(tf);//設定字型
效果如下圖所示:



2.    顯示多種顏色的字
Android支援html格式的字串,通過呼叫Html.fromHtml(str)方法可以轉換html格式的字串str。
示例如下:
StringtextStr1 = "<font color=\"#ffff00\">如果有一天,</font><br>";
StringtextStr2 = "<font color=\"#00ff00\">我厭倦了這裡,</font><br>";
StringtextStr3 = "<font color=\"#ff00ff\">我會乘著夢,</font><br>";

StringtextStr4 = "<font color=\"#00ffff\">飛向那個屬於自己的<br>世界……</font><br>";
tv.setText(Html.fromHtml(textStr1+textStr2+textStr3+textStr4));
執行後效果如下:



3.    字型加粗
在xml佈局檔案中使用android:textStyle=”bold”可以將英文設定成粗體,但是不能將中文設定成粗體,將中文設定成粗體的方法是:使用TextPaint的仿“粗體”設定setFakeBoldText為true。示例程式碼如下:
tv.getPaint().setFakeBoldText(true);

效果如下:



4.    新增陰影
在xml佈局檔案中使用一系列android:shadowXXX屬性可新增設定陰影。具體為:shadowColor設定陰影顏色;shadowDx設定陰影水平偏移量;shadowDy設定陰影垂直偏移量;shadowRadius設定陰影半徑。
示例程式碼:
android:shadowColor="#ffffff"
android:shadowDx="15.0"
android:shadowDy="5.0"
android:shadowRadius="2.5"
顯示效果如下:



5.    插入圖片
插入圖片有兩種方法,第一種方法就是用上面說的html格式的字串,不過轉換稍微有些麻煩。需要用到ImageGetter類來對圖片的src屬性進行轉換。示例程式碼如下:
StringimgStr = "<img src=\""+R.drawable.sidai+"\"/>";
Html.ImageGetterimageGetter = new Html.ImageGetter() {
         public Drawable getDrawable(Stringarg0) {
                   // TODO Auto-generated methodstub
                   int id =Integer.parseInt(arg0);
                   Drawable draw =getResources().getDrawable(id);
                   draw.setBounds(10, 10, 228,300);
                   return draw;
         }
};
tv.append(Html.fromHtml(imgStr,imageGetter,null));
第二種方法是使用xml佈局檔案中一系列android:drawableXXX屬性來實現插入圖片。具體為:drawableBottom是在文字框內文字的底端繪製指定影象;drawableLeft是在文字框內文字的左邊繪製指定影象;drawableRight是在文字框內文字的右邊繪製指定影象;drawableTop是在文字框內文字的頂端繪製指定影象;drawablePadding設定文字框內文字與影象之間的間距。示例程式碼:
android:drawableBottom=”@drawable/sidai”
插入圖片後的顯示效果如下:

用SpannableString來實現。

SpannableString spannableString = new SpannableString("預設顏色紅顏色");spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), 4,spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);tv.setText(spannableString);

其中,”預設顏色紅顏色” 為你要改變的文字。setSpan方法有四個引數,ForegroundColorSpan是為文字設定前景色,也就是文字顏色。如果要為文字新增背景顏色,可替換為BackgroundColorSpan。4為文字顏色改變的起始位置,spannableString.length()為文字顏色改變的結束位置。最後一個引數為布林型,可以傳入以下四種。 
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 從起始下標到終了下標,包括起始下標 
Spanned.SPAN_INCLUSIVE_INCLUSIVE 從起始下標到終了下標,同時包括起始下標和終了下標 
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 從起始下標到終了下標,但都不包括起始下標和終了下標 
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 從起始下標到終了下標,包括終了下標