TextView属性和方法大全
前面简单学习了一些Android UI的一些基础知识,那么接下来我们一起来详细学习Android的UI界面基本组件。
一、认识TextView
我们知道前面学习的HelloWorld应用程序中就是使用的TextView来显示一个文本,接下来首先一起来学习TextView的使用方法。
TextView的作用就是在界面上显示文本。TextView直接继承了 View,是EditText、Button两个UI组件类的父类,TextView与其子类的类图如下图所示:
TextView提供了大量的XML属性,这些XML属性大部分不仅可适用于TextView,而且可适用于它的子类(EditText、Button等)。下表显示了TextView支持的XML属性及相关方法。
XML属性 |
相关方法 |
说明 |
---|---|---|
android:autoLink |
setAutoLinkMask(int) |
是否将符合指定格式的文本转换为可单击的超链接形式 |
android:autoText |
setKeyListener(KeyListener) |
控制是否将URL、E-mail地址等连接自动转换为可单击的链接 |
android:capitalize |
setKeyListener(KeyListener) |
控制是否将用户输入的文本转换为大写字母。该属性支持如下属性值: none:不转换 sentence:每个句子的首字母大写 words:每个单词的首字母大写 characters:每个字母都大写 |
android:cursorVisible |
SetCursorVisible(boolean) |
设置该文本框的光标是否可见 |
android:digits |
setKeyListener(KeyListener) |
如果该属性设为true,则该文本框对应一个数字输入方法,并且只接受那些合法字符 |
android:drawableBottom |
setCompoundDrawablesWithIntrinsicBounds(Drawable, Drawable, Drawable, Drawable) |
在文本框内文本的底端绘制指定图像 |
android:drawableEnd |
在文本框内文本的结尾处绘制指定图像 |
|
android:drawableLeft |
setCompoundDrawablesWithIntrinsicBounds(Drawable, Drawable, Drawable, Drawable) |
在文本框内文本的左边绘制指定图像 |
android:drawablePadding |
setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawabl,Drawabl,Drawabl) |
在文本框内文本与图形之间的间距 |
android:drawableRight |
setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawabl,Drawabl,Drawabl) |
在文本框内文本的右边绘制指定图像 |
android:drawableStart |
setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawabl,Drawabl,Drawabl) |
在文本框内文本的开始处绘制指定图像 |
android:drawableTop |
setCompoundDrawablesWithIntrinsicBounds(Drawable,Drawabl,Drawabl,Drawabl) |
在文本框内文本的顶端绘制指定图像 |
android:editable |
设置该文本是否允许编辑 |
|
android:ellipsize |
setEllipsize(TextUitls.TruncateAt) |
设置当显示文本超过了TextView的长度时如何处理文本内容。该属性支持如下属性值: none:不做任何处理 start:在文本开始处截断,并显示省略号 middle:在文本中间处截断,并显示省略号 end:在文本结尾处截断,并显示省略号 marquee:使用marquee滚动动画显示文本 |
android:ems |
setEms(int) |
设置该组件的宽度,以em为单位 |
android:fontFamily |
setTypeface(Typeface) |
设置该文本框内文本的字体 |
android:gravity |
setGravity(int) |
设置文本框内文本的对齐方式 |
android:height |
setHeight(int) |
设置该文本框的高度(以pixel为单位) |
android:hint |
setHint(int) |
当设置文本框内容为空时,文本框内默认显示的提示文本 |
android:imeActionId |
setImeActionIdLabel(CharSequence,int) |
当该文本框关联输入法时,为输入法提供EditorInfo.actionId值 |
android:imeActionLabel |
setImeActionIdLabel(CharSequence,int) |
当该文本框关联输入法时,为输入法提供EditorInfo.actionLabel值 |
android:imeOptions |
setImeOptions(int) |
当该文本框关联输入法时,为输入法指定额外的选项 |
android:includeFontPadding |
setIncludeFontPadding(boolean) |
设置是否为字体保留足够的空间。默认值为true |
android:inputMethod |
setKeyListener(KeyListener) |
为该文本框指定特定的输入法。该属性值为输入法的全限定类名 |
android:inputType |
setRawInputType(int) |
指定该文本框的类型。该属性有点类似HTML中<input.../>元素的type属性。该属性支持大量的属性值,不同属性值用于指定特定的输入框 |
android:lineSpacingExtra |
setLineSpacing(float, float) |
控制两行文本之间的额外间距。与android:lineSpacingMultiplier属性结合使用 |
android:lineSpacingMultiplier |
setLineSpacing(float, float) |
控制两行文本之间的额外间距。每行文本为高度*该属性值+ android:lineSpacingExtra属性值 |
android:lines |
setLines(int) |
设置该文本框默认占几行 |
android:linksClickable |
setLinksClickable(boolean) |
控制该文本框的URL、E-mail等链接是否可点击 |
android:marqueeRepeatLimit |
setMarqueeRepeatLimit(int) |
设置marquee动画重复的次数 |
android:maxEms |
setMaxEms(int) |
指定该文本框的最大宽度(以em为单位) |
android:maxHeight |
setMaxHeight(int) |
指定该文本框的最大高度(以pixel为单位) |
android:maxLength |
setFilters(InputFilter) |
设置该文本框的最大字符长度 |
android:maxLines |
setMaxLines(int) |
设置该文本框最多占几行 |
android:maxWidth |
setMaxWidth(int) |
指定该文本框的最大宽度(以pixel为单位) |
android:minEms |
setMinEms(int) |
指定该文本框的最小宽度(以em为单位) |
android:minHeight |
setMinHeight(int) |
指定该文本框的最小高度(以pixel为单位) |
android:minLines |
setMinLines(int) |
设置该文本框最少占几行 |
android:minWidth |
setMinWidth(int) |
指定该文本框的最小宽度(以pixel为单位) |
android:numeric |
setKeyListener(KeyListener) |
设置该文本框关联的数值输入法。该属性支持如下属性值: integer:指定关联整数输入法 signed:允许输入符号的数值输入法 decimal:允许输入小数点的数值输入法 |
android:password |
setTransformationMethod(TransformationMethod) |
设置该文本框是一个密码框(以点代替字符) |
android:phoneNumber |
setKeyListener(KeyListener) |
设置该文本框只能接受电话号码 |
android:privateImeOptions |
setPrivateImeOptions(boolean) |
设置该文本框关联的输入法的私有选项 |
android:scrollHorizontally |
setHorizontallyScrolling(boolean) |
设置该文本框不够显示全部内容时是否允许水平滚动 |
android:selectAllOnFocus |
setSelectAllOnFocus(boolean) |
如果文本框的内容可选择,设置是否当它获得焦点时自动选中所有文本 |
android:shadowColor |
setShadowLayer(float, float, float, float) |
设置文本框内文本的阴影颜色 |
android:shadowDx |
setShadowLayer(float, float, float, float) |
设置文本框内文本的阴影在水平方向的偏移 |
android:shadowDy |
setShadowLayer(float,float,float, float) |
设置文本框内文本的阴影在垂直方向的偏移 |
android:shadowRadius |
setShadowLayer(float,float,float, float) |
设置文本框内文本的阴影的模糊程度。该值越大,阴影越模糊 |
android:singleLine |
setTransformationMethod |
设置文本框是否为单行模式。如果设为true,文本框不会换行 |
android:text |
setText(CharSequence) |
设置文本框内文本的内容 |
android:textAllCaps |
setAllCaps(boolean) |
设置是否将文本框的所有字母显示为大写字母 |
android:textAppearance |
设置该文本框的颜色、字体、大小等样式 |
|
android:textColor |
setTextColor(ColorStateList) |
设置文本框中文本的颜色 |
android:textColorHighlight |
setHighlightColor(int) |
设置文本框中文本被选中时的颜色 |
android:textColorHint |
setHintTextColor(int) |
设置文本框中提示文本的颜色 |
android:textColorLink |
setLinkTextColor(int) |
设置文本框中链接的颜色 |
android:textIsSelectable |
isTextSelectable() |
设置文本框不能编辑时,文本框内的文本是否可以被选中 |
android:textScaleX |
setTextScaleX(float) |
设置文本框内文本在水平方向上的缩放因子 |
android:textSize |
setTextSize(float) |
设置文本框内文本的字体大小 |
android:textStyle |
setTypeface(Typeface) |
设置文本框内文本的字体风格,如粗体、斜体等 |
android:typeface |
setTypeface(Typeface) |
设置文本框内文本的字体风格 |
android:width |
setWidth(int) |
设置该文本框的宽度(以pixel为单位) |
TextView派生了一个 CheckedTextView 类,CheckedTextView 增加了一个checked状态,开发者可通过 setChecked(boolean)和 isChecked()方法来改变、访问该组件的checked状态。除此之外,该组件还可通过setCheckMarkDrawable() 方法来设置它的勾选图标。
TextView还派生了Button类和EditText类,会在后续进行学习,此处不做过多介绍。
二、示例程序
接下来通过一个简单的示例程序来学习TextView的常见用法。
同前面创建创HelloWorld工程已于新建一个WidgetSample工程,在app/main/res/layout/目录下创建一个textview_layout.xml文件。
选中layout,鼠标右键弹出菜单,依次选择New -> XML -> Layout XML File,或依次选择New -> Layout resource file,或者选择layout后通过File菜单或新建图标完成,如下图所示:
弹出XML文件创建页面,如下图所示:
在Layout File Name输入布局名“textview_layout”,点击“Finish”完成创建。
默认创建的布局文件如图所示,然后在其中填充如下代码片段:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 设置文字颜色、大小、样式 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="红色粗体倾斜的TextView"
android:textColor="#EA5246"
android:textStyle="bold|italic"
android:textSize="18sp" />
<!-- 使用阴影 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:shadowColor="#F9F900"
android:shadowDx="10.0"
android:shadowDy="10.0"
android:shadowRadius="3.0"
android:text="带阴影的TextView"
android:textColor="#4A4AFF"
android:textSize="30sp" />
<!-- 带图片 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:drawableTop="@mipmap/ic_launcher"
android:drawableLeft="@mipmap/ic_launcher"
android:drawableRight="@mipmap/ic_launcher"
android:drawableBottom="@mipmap/ic_launcher"
android:text="带图片的TextView" />
<!-- 对邮件、电话、网址增加链接 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="邮件:cqkxzsxy@163.comn电话:13052288888n博客:http://blog.csdn.net/cqkxzsxy"
android:autoLink="email|phone|web"/>
<!-- 实现跑马灯效果 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="实现跑马灯效果的TextView,Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert~"/>
</LinearLayout>
然后修改一下app/src/java/MainActivity.java文件中加载的布局文件,如下所示:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
setContentView(R.layout.textview_layout);
}
}
然后运行程序,可以看到下图所示界面效果。
到此,TextView的示例结束,关于TextView的更多用法可以参照上面的XML属性和方法参照表,建议多动手练习。
- React项目配置3(如何管理项目API接口)
- React第三方组件3(状态管理之Flux的使用④TodoList下)
- React第三方组件3(状态管理之Flux的使用③TodoList中)
- Vue实现百度下拉提示搜索一、前期准备二、代码实现三、实现效果
- React第三方组件3(状态管理之Flux的使用②TodoList上)
- ggplot2玫瑰图案例——星巴克门店分布图
- React第三方组件3(状态管理之Flux的使用①简单使用)
- 用ggplot2画了一个我也叫不上名的炫酷图表
- React技巧8(不再手动绑定this,跟.bind(this)说88)
- 美美的商务范儿——ggplot2蝴蝶图
- 机器学习(三)使用Python和R语言从头开始理解和编写神经网络介绍目录神经网络背后的直观知识多层感知器及其基础知识什么是激活函数?前向传播,反向传播和训练次数(epochs)多层感知器全批量梯度下降
- React第三方组件2(状态管理之Refast的使用⑤LogicRender使用)
- 左右用R右手Python9——字符串合并与拆分
- hdu 1003 Max Sum(最大子窜和)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 安装Ubuntu20.04与安装NVIDIA驱动的教程
- Ubuntu下安装nvidia显卡驱动(安装方式简单)
- Ubuntu 20.04 apt 更换国内源的实现方法
- Android设计模式之单例模式解析
- Android屏蔽软键盘并且显示光标的实例详解
- Android实现底部缓慢弹出菜单
- Ubuntu20的tzselect设置时间失效的问题,树莓派服务器(推荐)
- 安装Ubuntu 20.04后要做的事(小白教程)
- Ubuntu20.04安装Python3的虚拟环境教程详解
- Android编程实现播放视频时切换全屏并隐藏状态栏的方法
- Android UI设计与开发之仿人人网V5.9.2最新版引导界面
- PopupWindow使用方法详解
- Android 中cookie的处理详解
- Android UI设计与开发之ViewPager仿微信引导界面以及动画效果
- Android UI设计与开发之ViewPager介绍和简单实现引导界面