從頭學Android之TextView控件 – Android移動開發技術文章_手機開發 Android移動開發教學課程

TextView是一種可用於顯示字符串的控件
類結構圖:
 
 
TextView屬性詳解
屬性
詳解
android:autoLink
設置是否當文本為URL鏈接/email/電話號碼/map時,文本顯示為可點擊的鏈接。可選值(none/web/email/phone/map/all)
android:autoText
如果設置,將自動執行輸入值的拼寫糾正。此處無效果,在顯示輸入法並輸入的時候起作用。
android:bufferType
指定getText()方式取得的文本類別。選項editable 類似於StringBuilder可追加字符,也就是說getText後可調用append方法設置文本內容。spannable 則可在給定的字符區域使用樣式,參見這裡1、這裡2。
android:capitalize
設置英文字母大寫類型。此處無效果,需要彈出輸入法才能看得到,參見EditView此屬性說明。
android:cursorVisible
設定光標為顯示/隱藏,默認顯示。
android:digits
設置允許輸入哪些字符。如“1234567890.+-*/% ()”
android:drawableBottom
在text的下方輸出一個drawable,如圖片。如果指定一個顏色的話會把text的背景設為該顏色,並且同時和background使用時覆蓋後者。
android:drawableLeft
在text的左邊輸出一個drawable,如圖片
android:drawablePadding
設置text與drawable(圖片)的間隔,與drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可設置為負數,單獨使用沒有效果。
android:drawableRight
在text的右邊輸出一個drawable。
android:drawableTop
在text的正上方輸出一個drawable。
android:editable
設置是否可編輯。
android:editorExtras
設置文本的額外的輸入數據。
android:ellipsize
設置當文字過長時,該控件該如何顯示。有如下值設置:”start”—-省略號顯示在開頭;”end” ——省略號顯示在結尾;”middle”—-省略號顯示在中間;”marquee” ——以跑馬燈的方式顯示(動畫橫向移動)
android:freezesText
設置保存文本的內容以及光標的位置。
android:gravity
設置文本位置,如設置成“center”,文本將居中顯示。
android:hintText
為空時顯示的文字提示信息,可通過textColorHint設置提示信息的顏色。此屬性在 EditView中使用,但是這裡也可以用。
android:imeOptions
附加功能,設置右下角IME動作與編輯框相關的動作,如actionDone右下角將顯示一個“完成”,而不設置默認是一個回車符號。這個在EditView中再詳細說明,此處無用。
android:imeActionId
設置IME動作ID。
android:imeActionLabel
設置IME動作標簽
android:includeFontPadding
設置文本是否包含頂部和底部額外空白,默認為true。

android:inputMethod
為文本指定輸入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是這裡報錯找不到。
android:inputType
設置文本的類型,用於幫助輸入法顯示合適的鍵盤類型。在EditView中再詳細說明,這裡無效果。
android:linksClickable
設置鏈接是否點擊連接,即使設置瞭autoLink。
android:marqueeRepeatLimit
在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為 marquee_forever時表示無限次。
android:ems
設置TextView的寬度為N個字符的寬度。這裡測試為一個漢字字符寬度

android:maxEms
設置TextView的寬度為最長為N個字符的寬度。與ems同時使用時覆蓋ems選項。
android:minEms
設置TextView的寬度為最短為N個字符的寬度。與ems同時使用時覆蓋ems選項。
android:maxLength
限制顯示的文本長度,超出部分不顯示
android:lines
設置文本的行數,設置兩行就顯示兩行,即使第二行沒有數據。
android:maxLines設置文本的最大顯示行數,與width或者layout_width結合使用,超出部分自動換行,超出行數將不顯示。
android:minLines
設置文本的最小行數,與lines類似
android:lineSpacingExtra
設置行間距
android:lineSpacingMultiplier
設置行間距的倍數。如”1.2”
android:numeric
如果被設置,該TextView有一個數字輸入法。此處無用,設置後唯一效果是TextView有點擊效果,此屬性在EdtiView將詳細說明。
android:password
以小點”.”顯示文本
android:phoneNumber
設置為電話號碼的輸入方式。
android:privateImeOptions
設置輸入法選項,此處無用,在EditText將進一步討論。

android:scrollHorizontally
設置文本超出TextView的寬度的情況下,是否出現橫拉條。

android:selectAllOnFocus
如果文本是可選擇的,讓他獲取焦點而不是將光標移動為文本的開始位置或者末尾位置。 TextView中設置後無效果。
android:shadowColor
指定文本陰影的顏色,需要與shadowRadius一起使用。
android:shadowDx
設置陰影橫向坐標開始位置。
android:shadowDy
設置陰影縱向坐標開始位置。
android:shadowRadius
設置陰影的半徑。設置為0.1就變成字體的顏色瞭,一般設置為3.0的效果比較好。
android:singleLine
設置單行顯示。如果和layout_width一起使用,當文本不能全部顯示時,後面用“…”來表示。如android:text="test_ singleLine "
android:singleLine="true" android:layout_width="20dp"將隻顯示“t…”。如果不設置singleLine或者設置為false,文本將自動換行
android:text
設置顯示文本.
android:textAppearance
設置文字外觀
android:textColor
設置文本顏色
android:textColorHighlight
被選中文字的底色,默認為藍色
android:textColorHint
設置提示信息文字的顏色,默認為灰色。與hint一起使用。

android:textColorLink
文字鏈接的顏色
android:textScaleX
設置文字之間間隔,默認為1.0f
android:textSize
設置文字大小,推薦度量單位”sp”,如”15sp”
android:textStyle
設置字形[bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2] 可以設置一個或多個,用“|”隔開
android:typeface
設置文本字體,必須是以下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體) 3]
android:height
設置文本區域的高度,支持度量單位:px(像素)/dp/sp/in/mm(毫米)
android:maxHeight
設置文本區域的最大高度
android:minHeight
設置文本區域的最小高度
android:width
設置文本區域的寬度,支持度量單位:px(像素)/dp/sp/in/mm(毫米),與layout_width 的區別看這裡
android:maxWidth
設置文本區域的最大寬度
android:minWidth
設置文本區域的最小寬度
 
 
 
 
 
 
 
改變TextView控件上顯示的文字的顏色的方法:
1.

android:textColor="#00FF00" 
 
        android:text="你好,很高興認識你,我的博客:http://blog.csdn.net/jiahui524。手機號碼:15580974038.郵箱:272570596@qq.com" /> 

 
 
這樣設置是所有的文字都成一種顏色


 
2.通過代碼改變
 

TextView tv = (TextView) findViewById(R.id.tv); 
 
 
 
   tv.setText(Html.fromHtml("你好呀<font color='red'>testtt</font>")); 

 
這樣的方式設置可以讓我們用我們所知道的HTML知識來有效的控制文字的顏色
註:此種方式必須先在TextView標簽中指定android:id屬性:

<TextView   
 
   android:id="@+id/tv" 
 
    android:layout_width="fill_parent"  
 
    android:layout_height="wrap_content"  
 
     
 
    /> 

這樣它會自動在R.java文件自動生成:

public static final class id { 
 
        public static final int tv=0x7f050000; 
 
    } 

 
 
3.

TextView tv=(TextView)findViewById(R.id.tv); 
 
   String str="你好,很高興認識你,我的博客:http://blog.csdn.net/jiahui524。手機號碼:15580974038.郵箱:272570596@qq.com"; 
 
   SpannableStringBuilder style=new SpannableStringBuilder(str); 
 
   style.setSpan(new ForegroundColorSpan(Color.RED), 0, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
 
   style.setSpan(new ForegroundColorSpan(Color.GREEN), 6, 21, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
 
   style.setSpan(new ForegroundColorSpan(Color.BLUE), 21, 34, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
 
   tv.setText(style); 

 
此種方式也能控制不同字段間的文字顯示的顏色不一樣:
 
 
設置超鏈接方式:
 

<TextView android:id="@+id/tv"  
 
         android:layout_width="fill_parent" 
 
          android:layout_height="wrap_content"  
 
          android:textColor="#00FF00" 
 
       android:text="你好,很高興認識你,我的博客:http://blog.csdn.net/jiahui524。手機號碼:15580974038.郵箱:272570596@qq.com"  
 
       android:autoLink="phone" 
 
       /> 

     android:autoLink="phone"
其值可以有:web, phone, email, none, all
 

作者:jiahui524專欄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *