文档章节

UI组件——TextView

s
 sarashare
发布于 2016/03/17 21:58
字数 2319
阅读 80
收藏 0

1 TextView直接继承与View。



对每个控件都要关注:界面事件。

界面是如何呈现的?

事件是如何实现的?

 

对每个控件做练习,并模仿商业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 则可在给定的字符区域使用样式,参见这里1、这里2。
android:editorExtras setExtractedText(ExtractedText)
setInputExtras(int)
设置文本的额外的输入数据。
android:freezesText setFreezesText(boolean) 设置保存文本的内容以及光标的位置。


TextView是一个很复杂的控件,派生类很多。熟悉TextView,对自定义控件很有好处。

复杂的控件:TextViewListViewGridView


示例程序:AndroidDemos/UI_Component_View_TextView



© 著作权归作者所有

s
粉丝 0
博文 18
码字总数 6514
作品 0
崇明
私信 提问
android学习笔记(不断更新...)

入门基础: 一、Android的发展和历史 创始人:AndyRubin 二、Android的平台架构和特性 四层架构:应用层 应用架构层 C/C++库 Linux 三、搭建Android开发环境 JDK(1.6以上版本) Android SD...

cg19910712
2013/09/01
0
0
2.1 View与ViewGroup的概念

2.1 View与ViewGroup的概念 分类 Android 基础入门教程 本节引言 告别了第一章,迎来第二章——Android中的UI(User Interface)组件的详解, 而本节我们要学习的是所有控件的父类View和Vie...

微笑的江豚
2016/03/21
8
0
android基础知识02——线程安全1:定义及例子

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
810
0
Android 第九课——UI 组件

组件继承关系图: 组件通用属性: 1)layoutwidth:组件的宽度,一般只有三个值wrapcontent、fillparent(老版本中使用)、matchparent,但他不是唯一控制宽度的元素 2)layoutheight:组件的...

learn_more
2015/01/05
219
1
android基础知识02——线程安全5: AsyncTask

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部