UI組件——TextView

1 TextView直接繼承與View。 html



對每一個控件都要關注:界面事件。 android

界面是如何呈現的? git

事件是如何實現的? web

 

對每一個控件作練習,並模仿商業app實現。 api

從最簡單和最多見的控件來 app

 

約定: 測試

特殊組件,詳細講事件和原理。 字體

普通組件,簡單講解用法。 動畫



TextView(文本框)

表1 TextView支持的XML屬性以及相關方法
參考資料:
《瘋狂Android(第3版本)》


TextView中XML屬性適用於TextView、Button和EditText。

XML屬性 相關方法 說明
android:autoLink setAutoLinkMask(int) 是否符合指定格式的文本轉換爲可單擊的超連接形式。
android:linksClickable setLinksClickable(boolean) 設置連接是否點擊鏈接,即便設置了autoLink。
android:autoText setKeyListener(KeyListener) 設置是否當文本爲URL連接/email/電話號碼/map時,文本顯示爲可點擊的連接。可選值(none/web /email/phone/map/all)
android:capitalize setKeyListener(KeyListener) 是否將用戶輸入的文本轉換爲大寫字母。
該屬性支持以下選項:
(1)none:不轉換。
(2)sentences:每一個句子的首字母大寫。
(3)worlds:每一個單詞的首字母大寫。
(4)characters:每一個字母大寫。
EditView中使用。
android:cursorVisible setCursorVisible(boolean) 設置該文本框的光標是否可見
android:drawableTop setCompoundDrawablesWithIntrinsicBounds(Drawable, Drawable,Drawable,Drawable) 在文本框內文本的頂端出繪製指定圖像。
android:drawableBottom setCompoundDrawablesWithIntrinsicBounds(Drawable, Drawable,Drawable,Drawable) 在文本框內文本的底端出繪製指定圖像。android:drawableBottom在text的下方輸出一個drawable,如圖片。若是指定一個顏色的話會把text的背景設爲該顏色,而且同時和background使用時覆蓋後者。
android:drawableLeft setCompoundDrawablesWithIntrinsicBounds(Drawable, Drawable,Drawable,Drawable) 在文本框內文本的左邊出繪製指定圖像。
android:drawableRight setCompoundDrawablesWithIntrinsicBounds(Drawable, Drawable,Drawable,Drawable) 在文本框內文本的右邊出繪製指定圖像。
android:drawableStart

在文本框內文本的開始處出繪製指定圖像。
android:drawableBottom

在文本框內文本的結尾處出繪製指定圖像。



android:drawablePadding setCompoundDrawablePadding(int) android:drawablePadding設置text與drawable(圖片)的間隔,與drawableLeft、 drawableRight、drawableTop、drawableBottom一塊兒使用,可設置爲負數,單獨使用沒有效果。
android:ellipsize

設置當文字過長時,該控件該如何顯示。
有以下值設置:
none:不作任何處理。
Start:省略號顯示在開頭;
end:省略號顯示在結尾;
middle:省略號顯示在中間;
marquee:以跑馬燈的方式顯示(動畫橫向移動)
android:marqueeRepeatLimit setMarqueeRepeatLimit(int) 設置marquee動畫重複的次數。在ellipsize指定marquee的狀況下,設置重複滾動的次數,當設置爲 marquee_forever時表示無限次。
android:editable

設置該文本是否容許編輯。
android:ems setEms(int) 設置該組件的寬度,以em爲單位。這裏測試爲一個漢字字符寬度
android:maxEms setMaxEms(int) 設置該文本框的最大寬度,以em爲單位。
android:minEms setMinEms(int) 設置該文本框的最小寬度,以em爲單位。
android:height setHeight(int) 設置該文本框的高度,以pixel爲單位。
android:maxHeight setMaxHeight(int) 設置該文本框的最大高度,以pixel爲單位。
android:minHeight setMinHeight(int) 設置該文本框的最小高度,以pixel爲單位。
android:width setWidth(int) 設置該文本框的寬度,以pixel爲單位。
android:maxWidth setMaxWidth(int) 設置該文本框的最大寬度,以pixel爲單位。
android:minWidth setMinWidth(int) 設置該文本框的最小寬度,以pixel爲單位。
android:lines setLines(int) 設置該文本框默認佔幾行。設置兩行就顯示兩行,即便第二行沒有數據。
android:maxLines setMaxLines(int) 設置該文本框最多佔幾行。超出部分不顯示。
android:minLines setMinLines(int) 設置該文本框最少佔幾行。
android:singleLine setSingleLine(boolean) 設置該文本框是否爲單行顯示模式。若是設置true,文本不會換行。
android:lineSpacingExtra setLineSpacing(float,float) 設置兩行文本之間的額外間距。與屬性android:lineSpacingMultiplier結合使用。
android:lineSpacingMultiplier setLineSpacing(float,float) 設置兩行文本之間的間距倍數。 如」1.2」。每行文本爲高度*該屬性值 + android:lineSpacingExtra屬性值。
android:textAppearance

設置文本框文本的顏色、字體、大小等樣式。
如 「?android:attr/textAppearanceLargeInverse」這裏引用的是系統自帶的一個外觀,?表示系統是否有這種外觀,不然使用默認的外觀。
可設置的值以下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/
textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse
android:gravity setGravity(int) 設置文本框中文本的對齊方式。
android:text setText(ChartSeqence) 設置文本框中文本.
android:textAllCaps setTextAllCaps(boolean) 設置是否將文本框的全部字母顯示爲大寫字母。
android:textColor setTextColor() 設置文本框中文本的顏色。
android:textSize setTextSize(float) 設置文本框中文本的字體大小,推薦度量單位」sp」,如」15sp」。
android:textColorHighlight setHighlightColor() 設置文本框中文本被選中時的顏色。默認爲藍色
android:textColorLink setLinkTextColor() 設置文本框中文字連接的顏色.
android:textScaleX setTextScaleX(float) 設置文本框中文字在水平方向上的縮放因子。默認爲1.0f。
android:textStyle setTypeface(Typeface) 設置文本框中文本的字體風格。[bold(粗體) 0, italic(斜體) 1, bolditalic(又粗又斜) 2] 能夠設置一個或多個,用「|」隔開
android:typeface setTypeface(Typeface) 設置文本框中文本的字體。必須是如下常量值之一:normal 0, sans 1, serif 2, monospace(等寬字體) 3]
android:textIsSelectable isTextIsSelectable() 設置文本框不能編輯時,文本框內的文字是否能夠選中。
android:hint setHint(int) 設置當文本框內容爲空時,文本框內默認提示的提示文本。EditText中輸入內容爲空時,設置提示信息。
android:textColorHint setHintTextColor 設置文本框中提示文本的顏色。默認爲灰色。與hint一塊兒使用。
android:maxLength

限制顯示的文本長度,超出部分不顯示。
android:shadowColor setShadowLayer(float,float,float,int) 設置文本框內文本的陰影顏色。須要與shadowRadius一塊兒使用。
android:shadowDx setShadowLayer(float,float,float,int) 設置文本框內文本的陰影在水平方向(橫向座標)的偏移。
android:shadowDy setShadowLayer(float,float,float,int) 設置文本框內文本的陰影在垂直方向(縱向座標)的偏移。
shadowRadius setShadowLayer(float,float,float,int) 設置文本框內文本的陰影的模糊程序。該值越大,陰影越模糊。android:shadowRadius設置陰影的半徑。設置爲0.1就變成字體的顏色了,通常設置爲3.0的效果比較好。


android:digits設置容許輸入哪些字符。如「1234567890.+-*/% ()」
android:numeric setKeyListener(KeyListener) 設置文本框關聯的數值輸入法。
該屬性支持以下屬性值:
integer:執行關聯整數輸入法
signed:容許輸入符號的數值輸入法。
Decimal:容許輸入小數點的數值輸入法。
android:digits setKeyListener(KeyListener) 若是該屬性設置爲true,該文本框對應一個數字輸入法,而且只能接受那些合法字符。
android:password setTransformationMethod(TransformationMethod) 設置文本框是一個密碼框,以小點」.」顯示文本
android:phoneNumber setKeyListener(KeyListener) 設置文本框只能接受電話號碼
android:imeOptions setImeOptions(int) 當爲文本框關聯輸入法時,爲輸入法指定額外的選項。
附加功能,設置右下角IME動做與編輯框相關的動做,如actionDone右下角將顯示一個「完成」,而不設置默認是一個回車符號。在EditView使用。
android:imeActionId setImeActionLabel(CharSequebnce,int) 當輸入框關聯輸入法時,爲輸入法提供EditorInfo.actionId值。即設置IME動做ID。在EditView使用。
android:imeActionLabel setImeActionLabel(CharSequebnce,int) 當輸入框關聯輸入法時,爲輸入法提供EditorInfo.actionLabel值。設置IME動做標籤。在EditView使用。
android:includeFontPadding setIncludeFontPadding(boolean) 設置是否爲字體保留足夠的空間。即設置文本是否包含頂部和底部額外空白,默認爲true。
android:inputMethod setKeyListener(KeyListener) 爲文本框指定輸入法,須要全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,可是這裏報錯找不到。
android:privateImeOptions setPrivateImeOptions(String) 設置文本框關聯輸入法的私有選項。在EditText中使用。
android:inputType setRawInputType(int) 設置文本框的類型,用於幫助輸入法顯示合適的鍵盤類型。在EditView使用。
android:fontFamily setTypeface(Typeface) 設置文本框內文本的字體。
android:scrollHorizontally setScrollHorizontally(boolean) 設置當文本框不夠顯示所有內容時是否容許水平滾動。即超出TextView的寬度的狀況下,是否出現橫拉條。
android:selectAllOnFocus setSelectAllOnFocus(boolean) 當文問框的內容可選擇,設置是否當它得到焦點時自動選中全部文本。 TextView中設置後無效果。在EditView使用。


android:bufferType指定getText()方式取得的文本類別。選項editable 相似於StringBuilder可追加字符,也就是說getText後可調用append方法設置文本內容。spannable 則可在給定的字符區域使用樣式,參見這裏一、這裏2。
android:editorExtras setExtractedText(ExtractedText)
setInputExtras(int)
設置文本的額外的輸入數據。
android:freezesText setFreezesText(boolean) 設置保存文本的內容以及光標的位置。


TextView是一個很複雜的控件,派生類不少。熟悉TextView,對自定義控件頗有好處。 ui

複雜的控件:TextViewListViewGridView


示例程序:AndroidDemos/UI_Component_View_TextView
相關文章
相關標籤/搜索