Duan

The more hard, the more fortunate.


  • 首页

  • 关于

  • 归档

  • 标签

Android:TextView及其子类


TextView及其子类

TextView直接继承自View,它还是EditText和Button的父类。

1.TextView
  1. TextView及其子类的继承关系图如下:
    这里写图片描述
  2. CheckedTextView跟TextView相比增加了一个checked状态,开发者可通过setChecked(bool check)和isChecked()方法来改变和判断其状态。通过setCheckMarkDrawable()设置它的勾选图标。
  3. 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 字体风格(粗体、斜体等)
  1. 例子
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <TextView
    android: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
  1. EditText与TextView非常相似,它与TextView共用了绝大部分xml属性和方法。区别在于EditText可以接收用户的输入。
  2. EditText最重要的属性是InputType属性,该属性将EditText设置为指定类型的输入组件,该属性随着Android的不断升级也会被不断扩充。
  3. 可参见此处: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"
END
James Duan

James Duan

¥.¥

23 日志
43 标签
Github Twitter QQ CSDN email
© Thu May 18 2017 08:00:00 GMT+0800 (中国标准时间) - 2017 James Duan
由 Hexo 强力驱动
主题 - NexT.Mist