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