先看看TextView的类继承结构:

java.lang.Object
↳ android.view.View
↳ android.widget.TextView

是直接继承View类的,可扩展性很强!以后自定义控件都可以继承TextView,如果有这需要的话。

TextView怎么用就不多说了,这里主要总结一下它的几个容易搞混淆的属性以及一些比较有意义的用法,开始!

1、几个容易混淆的属性

android:gravity属性:设置文字内容在水平和垂直方向上居中显示,当然还有其他的显示方式。

android:layout_margin属性:设置该TextView控件距离周围其他控件的距离。

android:padding属性:设置文字内容距离控件四边的距离。

2、自动识别

android:autoLine属性:有none、web、email、phone、map、all这6个值。最常用的是web,这里就以web为例。如果再布局文件中不指定

android:autoLink="web",那么在程序中也可以来指定,不过要比在布局文件中要复杂一下,是通过Html的fromHtml方法来实现的。

textView.setText(Html.fromHtml("<a href='http://www.csdn.cn'>http://www.csdn.cn</a>"));

3、怎样为TextView指定边框?

我们都知道android系统本身的TextView是不支持边框的,但是如果有这个需要,怎么办呢?

方法一:自定义控件继承TextView方法,在onDraw方法中,画四条线做为边框即可!具体代码如下:

@Override
protected void onDraw(Canvas canvas) {
Paint p = new Paint();
p.setColor(Color.WHITE);
canvas.drawLine(0, 0, this.getWidth()-1, 0, p);// 画上横线
canvas.drawLine(0, 0, 0, this.getHeight()-1,p );// 画左竖线
canvas.drawLine(0, this.getHeight(), this.getWidth(), this.getHeight(), p);// 画下横线
canvas.drawLine(this.getWidth(), 0, this.getWidth(), this.getHeight(), p);// 画右竖线
super.onDraw(canvas);
}

方法二:添加一个带边框的背景图片!但是在制作图片的时候最好先知道TextView的大小,以免将图片拉伸变形。

4、设置文本的行间距

android:lineSpaceingExtra属性:设置精确的行间距。

android:lineSpaceingMultiplier属性:设置行间距,以默认行间距的倍数来权衡的。

当两种都设置了的话,就以行间距最大的那个为准。

5、实现跑马灯的效果

跑马灯在很多开发中都会运用到,大家都知道,如果在布局文件中设置了TextView的跑马灯属性的话,只有在该TextView着焦的时候才会开始跑马灯效果,失去焦点又停了下来,那么究竟如何去实现它呢?这里我觉得最好的方式就是自己写一个类继承自TextView,并且覆写isFoused(),让这个方法返回true,那么这个TextView就会一直返回着焦的状态,在着焦和没有着焦的情况下都会有跑马灯的效果,而需要一直有这个跑马灯的效果的话,还需要在配置文件中配置。

下面看看自己定义的类MyTextView.java 。很简单,就只改了一句话!

public class MyTextView extends TextView {

	public MyTextView(Context context) {
super(context);
} public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
} public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
} @Override
public boolean isFocused() {
return true;// 返回真
}
}

配置文件:

<dxd.android.test.MyTextView
android:id="@+id/listview_items_textview_title"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:text="最近在开发一个应用,需要用到文本的跑马灯效果,图省事,在网上找,但老半天都找不到,后来自己写了一个,很简单!"
/>

对代码做一点说明:

android:ellipsize="marquee"属性:设置跑马灯效果
        android:marqueeRepeatLimit="marquee_forever"属性:永远执行跑马灯效果

基本的TextView的用法就差不多了,这些都很够用了!

TextView总结的更多相关文章

  1. 关于textview显示特殊符号居中的问题

    话说这是2017年的第一篇博客,也是一篇技术博客.先从简单的一篇解决问题开始吧,千里之行,始于足下! ------------------------------------------------- ...

  2. 奇葩问题-TextView无法获取值

    问题场景 前几天写一个界面的时候,遇到一个非常奇葩的问题.app第一次安装的时候,这里针对用户第一次安装的时候,后来是不会出现这个问题了.我明明是对某个界面的一个textview赋值了,而且服务端也返 ...

  3. 动态给textView加图片

    Drawable img = layout.getResources().getDrawable(R.drawable.icon); // 调用setCompoundDrawables时,必须调用Dr ...

  4. TextView使用大全

    最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少走弯路,写一个系列的话,大家学习起来也有头有尾. 今天就从我们每 ...

  5. TextField和TextView的限制输入长度

    TextField的限制代理方法 只需要在这个代理方法里面code这样的代码就可以了 16 是长度可以自己设置 - (BOOL)textField:(UITextField *)textField s ...

  6. RAC textView的双向绑定

    今天在写关于textView的数据绑定时原先写法是这样的: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78 ...

  7. android textview 自动换行 整齐排版

    一.问题在哪里? textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子: 上述特殊情况包括: 1)全角/半角符号混排(一般是数字.字母.汉字混排) 2)全角/半角 ...

  8. textView的提醒文字

    如果我们想提交一些备注信息,会想到用textFiled和textView两种控件去实现 1.提醒文字是textFiled的特有属性,但是textFiled显示文本只有一行,不能实现我们输入较多文字的情 ...

  9. 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio

    1. TextView控件是文本表示控件,主要功能是向用户展示文本的内容,它是不可编辑的,如设置标题:EditText控件是编辑文本控件,主要功能是让用户输入文本的内容,它是可以编辑的.每一个控件都有 ...

  10. Android:TextView文字跑马灯的效果实现

    解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_wi ...

随机推荐

  1. hdu 5396 Expression(区间dp)

    Problem Description Teacher Mai has n numbers a1,a2,⋯,anand n−1 operators("+", "-&quo ...

  2. struts配置,略记

    <!-- <listener> <listener-class>org.springframework.web.context.ContextLoaderListener ...

  3. Java操作属性文件,支持新增或更新多个属性

    Java操作属性文件.支持新增或更新多个属性 一.更新或新增单个属性的方法 /** * 写入properties信息 * @param filePath 绝对路径(包含文件名称和后缀名) * @par ...

  4. 画8_hdu_1256(图形).java

    画8 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  5. C-冒泡排序,选择排序,数组

    ——构造类型 ->数组      ->一维数组      ->相同类型的一组数据      ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变 ...

  6. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  7. Tomcat6+nginx集群,达到负载均衡和session复制

    nginx+tomcat做web项目集群,达到负载均衡.故障转移.session复制功能. 1.nginx配置文件见上一篇“nginx配置文件(反向代理+集群+动静分离)” 2.tomcat集群,修改 ...

  8. Private Members in JavaScript

    Private Members in JavaScript Douglas Crockford www.crockford.com JavaScript is the world's most mis ...

  9. css实现超连接按钮形式显示

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  10. Installation error: INSTALL_CANCELED_BY_USER

    这个错误,从字面上理解,就是已经安装的时候被用户取消了. 我出现这个错误的时候,是手机连接在电脑上的. 经过网上搜索,确认这是安装apk到手机时,被手机取消了安装操作. 1. 确保手机处于开发者模式. ...