TextView属性和方法大全

时间:2022-04-26
本文章向大家介绍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属性和方法参照表,建议多动手练习。