Android TextView高級特性使用


  TextView一般都是用來顯示一段文本,這里說的高級特性主要是一些我們平常不太常用的屬性。包括文字陰影、自定義字體、html嵌入多格式、字體加粗、插入圖片。這些特性平時開發APP的時候,可能一般使用不多,不過需要的時候卻是很有用的特性。

  之所以寫這篇文章是因為今天修改Launcher里面界面字體的時候,遇到些問題,而Launcher的圖標都是TextView做的,因此查找了一些TextView的特殊屬性。

 (PS:新建的QQ群,有興趣可以加入一起討論:Android群:322599434)

  

1、文字陰影

 
         
//Edited by mythou
//http://www.cnblogs.com/mythou/
android:shadowColor="#000000" android:shadowDx="15.0" android:shadowDy="5.0" android:shadowRadius="2.5"

  shadowColor設置陰影顏色;shadowDx設置陰影水平偏移量;shadowDy設置陰影垂直偏移量;shadowRadius設置陰影半徑。這里需要說明一點是,如果需要陰影和原字體重疊,需要設置shadowDx和shadowDy為-1,並且把shadowRadius設置大一點。我們可以直接把上面屬性嵌入到TextView標簽,也可以使用<style>來定義。

 
         
//Edited by mythou
//http://www.cnblogs.com/mythou/
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LauncherWorkspaceText">
    <item name="android:paddingLeft">4px</item>
    <item name="android:paddingBottom">4px</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textSize">60sp</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowDx">-1</item>
    <item name="android:shadowDy">-1</item>
    <item name="android:shadowRadius">4</item>
</style>
</resources>

上面是我定義的一個用於Launcher界面按鈕文字大小的Style標簽,在使用的時候,可以直接引用這個Style即可。

 
         
//Edited by mythou
//http://www.cnblogs.com/mythou/
<TextView style="@style/LauncherWorkspace" android:id="@+id/player" android:layout_width="160dp" android:layout_height="160dp" android:background="@drawable/player"
/>

 

2、自定義字體

  TextView可以使用setTypeface(Typeface)方法來設置文本框內文本的字體,Typeface使用TTF字體文件來設置字體。因此我們只要找到合適的TFT字體文件,然后放到程序里面即可。TFT字體在我們window系統里面就有很多,例如微軟雅黑。

在程序中使用Typeface來設置字體:

第一步,在assets目錄下新建fonts目錄,把TTF字體文件放到這里。

第二步,程序中使用下面代碼設置自定義字體:

 
         
//Edited by mythou
//http://www.cnblogs.com/mythou/
TextView  tv = (TextView)findViewById(R.id.textView); //得到AssetManager
AssetManagermgr=getAssets(); //根據路徑得到Typeface
Typefacetf=Typeface.createFromAsset(mgr, "fonts/yahei.TTF"); //設置字體
tv.setTypeface(tf);

 

3、TextView使用Html格式文本

TextView里面支持識別Html格式,因此,我們可以利用Html代碼標簽定義多元化的TextView顯示。

//Edited by mythou
//http://www.cnblogs.com/mythou/
String textStr1 = "<font color=\"#ffff00\">Html顏色標簽測試</font><br>"; 
tv.setText(Html.fromHtml(textStr1));

 

4、字體加粗

在xml布局文件中設置字體加粗:

android:textStyle=”bold”

  這個屬性可以將英文設置成粗體,但是不能將中文設置成粗體,將中文設置成粗體的方法是:使用TextPaint的仿“粗體”設置setFakeBoldText為true。

tv.getPaint().setFakeBoldText(true);

 

5、插入圖片

  插入圖片有兩種方法,第一種方法使用Html嵌入,不過需要一些轉換工作。使用ImageGetter類來對圖片的src屬性進行轉換。

 
         
//Edited by mythou
//http://www.cnblogs.com/mythou/
String imgStr = "<img src=\""+R.drawable.player+"\"/>"; Html.ImageGetter imageGetter = new Html.ImageGetter() { public Drawable getDrawable(String arg0) { // TODO Auto-generated methodstub
                   int id =Integer.parseInt(arg0); Drawable draw =getResources().getDrawable(id); draw.setBounds(5, 5, 160,160); return draw; } }; 
//設置圖片
tv.append(Html.fromHtml(imgStr,imageGetter,null));

第二種方法是使用xml布局文件的android:drawableXXX屬性來實現插入圖片。

drawableBottom是在文本框內文本的底端繪制指定圖像

drawableLeft是在文本框內文本的左邊繪制指定圖像

drawableRight是在文本框內文本的右邊繪制指定圖像

drawableTop是在文本框內文本的頂端繪制指定圖像

drawablePadding設置文本框內文本與圖像之間的間距

 

Edited by mythou

原創博文,轉載請標明出處:http://www.cnblogs.com/mythou/p/3228795.html 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM