1 TextView直接繼承與View。 html
對每一個控件都要關注:界面+ 事件。 android
界面是如何呈現的? git
事件是如何實現的? web
對每一個控件作練習,並模仿商業app實現。 api
從最簡單和最多見的控件來 app
約定: 測試
特殊組件,詳細講事件和原理。 字體
普通組件,簡單講解用法。 動畫
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
複雜的控件:TextView、ListView、GridView