文章目录
TextView
TextView直接继承了View,从功能上看TextView就是一个没有编辑功能的文本编辑器,主要用于文本内容的展示。TextView有非常多的XML属性,主要使用的有以下几种:
(1)显示文字
(2)给文字添加图标
(3)给文字添加添加下划线
(4)给文字添加中划线
(5)文本框的显示不下内容时的操作
显示文字
(1)text
给View设置文本信息。有两种方法可以给text添加文字:
(1)android:text=“HelloWorld” 直接给text赋值
(2)android:text="@string/text" 将文本内容写在string.xml中,然后赋值
(2)textSize
设置TextView中文本的字体大小,字体的单位建议使用sp
(3)textColor
设置TextView的文本颜色
(4)layout_margin
设置外边距,即TextView和其他组件的间隔,注意直接使用layout_margin是为该组件的上下左右都设置外边距,也可以分别给组件的四个方向设置外边距。
(5)padding
设置内边距,即TextView中显示的内容了TextView边框的距离,和layout)margin一样,可以通过padding一起设置,也可以分别设置。
示例程序
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="10dp"
android:padding="10dp"
android:padding="10dp"
android:text="@string/textPHP"
android:textColor="#ff0000"
android:textSize="24sp" />
给文字添加图标
(6)drawableLeft
将图标设置在文字的左侧。除此之外android还提供了drawableRight等,可以将图标放在文本的上下左右。
示例程序
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="15dp"
android:drawableLeft="@drawable/setting"
android:drawablePadding="5dp"
android:text="设置"
android:textColor="#0000ff"
android:textSize="24sp" />
给文字添加添加下划线
给文字添加下划线需要使用代码才能实现
(7)setUnderlineText(boolean)
该方法是TextPaint中的一个方法,通过该方法可以为TextView中的内容设置下划线,不过使用该函数之前必须获得画该组件的画笔。
(8)getPaint()
获取画笔
示例程序
m_TextViewJAVA=findViewById(R.id.textViewJAVA);
//获取画笔
TextPaint textPaint=m_TextViewJAVA.getPaint();
//给文本设置下划线
textPaint.setUnderlineText(true);
给文本添加中划线
(9)setFlags()
给文本这只标志,该函数并不仅仅只是单纯的智能设置中划线,还可以设置其他很多样式,如下划线等。
示例程序
m_TextViewC.getPaint().setFlags(TextPaint.STRIKE_THRU_TEXT_FLAG);
文本框的显示不下内容时的操作
(10)ellipsize
设置当显示的文本超过了TextView的长度是如何处理文本内容,该属性支持如下属性值:
(1)none:不做任何处理
(2)start:在文本开始出截断,并显示省略号
(3)middle:在文本中间截断,并显示省略号
(4)end:在文本末尾处阶段,并显示省略号
(5)marquee:使用marquee滚动动画显示文本
(11)maxLines
设置组件内容的最大行数
(12)singleline
设置文本内容文单行显示
(13)focusable
设置焦点
(14)focusableInToucnMode
设置可以通过触摸获取焦点
(15)marqueeRepeatLimit
设置文本内容的滚动次数,marquee_forever为无限次。
示例程序1
将显示不下的内容从文本末尾截断,并使用省略号
<TextView
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="10dp"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/textCPP"
android:textColor="#03A9F4"
android:textSize="24sp" />
示例程序2
将显示不下的内容以滚动形式显示在屏幕上
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="15dp"
android:text="@string/textPoetry"
android:textColor="#43F436"
android:textSize="24sp"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true" />
运行结果
以上几种效果的运行结果:
String.xml
<resources>
<string name="app_name">ViewText</string>
<string name="textPHP">PHP是世界上最好的语言</string>
<string name="textCPP">CPP是世界上最好的语言</string>
<string name="textC">C语言是世界上最好的语言</string>
<string name="textJAVA">JAVA是世界上最好的语言</string>
<string name="textPoetry">待到秋来九月八,我花开后百花杀。冲天香阵透长安,满城尽带黄金甲。</string>
</resources>