Android:TextView及其子类
TextView及其子类
TextView直接继承自View,它还是EditText和Button的父类。
1.TextView
- TextView及其子类的继承关系图如下:
- CheckedTextView跟TextView相比增加了一个checked状态,开发者可通过
setChecked(bool check)
和isChecked()
方法来改变和判断其状态。通过setCheckMarkDrawable()
设置它的勾选图标。 - TextView提供了大量的XML属性,这些属性大部分不仅适用于TextView,而且可使用于它的子类。
xml属性 | 说明 | ||||
---|---|---|---|---|---|
android:autoLink | 是否将符合指定格式的文本转换为可单击的超链接形式 | ||||
android:autoText | 是否将URL,Email地址等连接自动转换为可单击的超链接 | ||||
android:linksClickable | 控制该文本框的URL,Email等链接是否可以点击 | ||||
android:capitalize | 控制是否将用户输入的文本转换为大写字母,支持如下属性: none:不转换 sentences:每个句子的首字母大写 words:每个单词的首字母大写 characters:每个字母都大写 |
||||
android:drawableBottom[End\ | Left\ | Top\ | Start\ | Right] | 在文本框内文本的底部(结尾处、左边、顶部、开始处、右边)绘制指定图像 |
android:drawablePadding | 文本框内文本与图形之间的距离 | ||||
android:ellipsize | 设置当文本超过TextView的长度时如何处理文本,支持如下属性值: none:不做任何处理 start:在文本开始处截断并显示省略号 middle:在文本中间截断并显示省略号 end:在文本结尾处截断并显示省略号 marquee:使用marquee滚动动画显示文本 |
||||
android:marqueeRepeatLimit | 设置marquee动画重复的次数 | ||||
android:ems | 设置该组件的宽度,以em为单位 | ||||
android:fontFamily | 设置文本框内文字的字体 | ||||
android:gravity | 设置文本框内文本的对齐方式 | ||||
android:height | 设置文本框的高度 | ||||
android:width | 设置文本框的宽度 | ||||
android:hint | 当文本框内没有文本时默认显示的提示文本 | ||||
android:inputType | 指定文本框的输入类型 | ||||
android:lineSpacingExtra | 控制两行文本之间的额外间距 | ||||
android:lines | 设置该文本框默认占几行 | ||||
android:maxEms[Height\ | Length\ | Lines\ | Width] | 设置该文本框的最大ems(高度、字符长度、占几行、宽度) | |
android:minEms[Height\ | Lines\ | Width] | 设置该文本框的最小ems(高度、占几行、宽度) | ||
android:scrollHorizontally | 设置当文本框不够显示时是否允许水平滚动 | ||||
android:shadowColor | 设置文本框内文本的阴影颜色 | ||||
android:shadowDx[y] | 设置文本框内文本的阴影在水平(垂直)方向的偏移 | ||||
android:shadowRadius | 设置文本框内文本的模糊程度,值越大越模糊 | ||||
android:text | 指定文本内容 | ||||
android:textAllCaps | 文本全部大写 | ||||
android:textColor | 指定文本颜色 | ||||
android:textColorHighLight | 文本被选中时颜色 | ||||
android:textColorHint | 提示文本颜色 | ||||
android:textScaleX | 文本的水平缩放因子 | ||||
android:textStyle | 字体风格(粗体、斜体等) |
- 例子12345678910111213141516171819202122<TextViewandroid:textColorLink="#00ff0d"android:autoLink="email|web"android:lineSpacingExtra="10dp"android:ems="8"android:textSize="20sp"android:paddingLeft="20dp"android:gravity="end"android:paddingRight="20dp"android:drawablePadding="20dp"android:drawableTop="@drawable/lines"android:drawableBottom="@drawable/lines"android:shadowColor="@color/colorPrimaryDark"android:shadowDx="20.0"android:shadowDy="10.0"android:shadowRadius="10.0"android:text="23232@163.com**0872-18345678908**afffwerwerhttp://www.baidu.com"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
阴影效果需远行到模拟器中才能看到。
2.EditText、AutoCompleteTextView、ExtractEditText
2.1EditText
- EditText与TextView非常相似,它与TextView共用了绝大部分xml属性和方法。区别在于EditText可以接收用户的输入。
- EditText最重要的属性是InputType属性,该属性将EditText设置为指定类型的输入组件,该属性随着Android的不断升级也会被不断扩充。
- 可参见此处:Android EditText的属性和方法介绍使用及值得注意的点
|可用属性值|说明|
|:—-|:—|
|none|输入普通字符|
|text|输入普通字符|
|textCapCharacters|输入普通字符|
|textCapWords|单词首字母大小|
|textCapSentences|仅第一个字母大小|
|textAutoCorrect|前两个自动完成|
|textAutoComplete|前两个自动完成|
|textMultiLine|多行输入|
|textImeMultiLine|输入法多行(不一定支持)|
|textNoSuggestions|不提示|
|textUri|URI格式|
|textEmailAddress|电子邮件地址格式|
|textEmailSubject|邮件主题格式|
|textShortMessage|短消息格式|
|textLongMessage|长消息格式|
|textPersonName|人名格式|
|textPostalAddress|邮政格式|
|textPassword|密码格式|
|textVisiblePassword|密码可见格式|
|textWebEditText|作为网页表单的文本格式|
|textFilter|文本筛选格式|
|textPhonetic|拼音输入格式|
|number|数字格式|
|numberSigned|有符号数字格式|
|numberDecimal|可以带小数点的浮点格式|
|phone|拨号键盘|
|datetime|日期+时间格式|
|date|日期键盘|
|time|时间键盘|
2.2AutoCompleteTextView
带自动完成功能的EditText,该类需要与Adapter结合使用。
2.3ExtractEditText
它并不是UI组件,而是EditText的底层服务类,负责提供全屏输入法支持
3.Button
在Android L5.0中加入了触摸反馈动画。
其中最明显,最具代表性的就是波纹动画,比如当点击按钮时会从点击的位置产生类似于波纹的扩散效果。
波纹效果Ripple
:
当你使用了Material主题后,波纹动画会自动应用在所有的控件上
可以通过如下代码设置波纹的背景:
- 波纹超出边界:
android:background="?android:attr/selectableItemBackgroundBorderless"
- 背景透明,波纹有边界:
android:background="?android:attr/selectableItemBackground"
我们也可以通过设置xml属性来调节动画颜色,从而可以适应不同的主题:
- 设置波纹颜色:
android:colorControlHighlight
- 设置checkbox等控件的选中颜色:
android:colorAccent
为view添加波纹效果:
android:clickable="true"
android:background="?android:attr/selectableItemBackground"