TextView总结
先看看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总结的更多相关文章
- 关于textview显示特殊符号居中的问题
话说这是2017年的第一篇博客,也是一篇技术博客.先从简单的一篇解决问题开始吧,千里之行,始于足下! ------------------------------------------------- ...
- 奇葩问题-TextView无法获取值
问题场景 前几天写一个界面的时候,遇到一个非常奇葩的问题.app第一次安装的时候,这里针对用户第一次安装的时候,后来是不会出现这个问题了.我明明是对某个界面的一个textview赋值了,而且服务端也返 ...
- 动态给textView加图片
Drawable img = layout.getResources().getDrawable(R.drawable.icon); // 调用setCompoundDrawables时,必须调用Dr ...
- TextView使用大全
最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少走弯路,写一个系列的话,大家学习起来也有头有尾. 今天就从我们每 ...
- TextField和TextView的限制输入长度
TextField的限制代理方法 只需要在这个代理方法里面code这样的代码就可以了 16 是长度可以自己设置 - (BOOL)textField:(UITextField *)textField s ...
- RAC textView的双向绑定
今天在写关于textView的数据绑定时原先写法是这样的: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78 ...
- android textview 自动换行 整齐排版
一.问题在哪里? textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子: 上述特殊情况包括: 1)全角/半角符号混排(一般是数字.字母.汉字混排) 2)全角/半角 ...
- textView的提醒文字
如果我们想提交一些备注信息,会想到用textFiled和textView两种控件去实现 1.提醒文字是textFiled的特有属性,但是textFiled显示文本只有一行,不能实现我们输入较多文字的情 ...
- 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio
1. TextView控件是文本表示控件,主要功能是向用户展示文本的内容,它是不可编辑的,如设置标题:EditText控件是编辑文本控件,主要功能是让用户输入文本的内容,它是可以编辑的.每一个控件都有 ...
- Android:TextView文字跑马灯的效果实现
解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_wi ...
随机推荐
- Spring 的优秀工具类盘点第 2 部分
特殊字符转义 由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊字符转义的问题. ...
- 设计: ListView 接口,and the missing read-only interfaces in java collection framework
Java的集合框架以其成功易用的设计征服了很多人(包括我),并且教科书式的诠释了泛型的应用方式. 我也是被 Joshua Bloch 的书引领入门,从中得益良多.我当然不会认为自己在设计上比他懂得更多 ...
- 【InversionCount 逆序对数 + MergeSort】
Definition of Inversion: Let (A[0], A[1] ... A[n], n <= 50) be a sequence of n numbers. If i < ...
- python - 类成员修饰符
在java,c#类的成员修饰符包括,公有.私有.程序集可用的.受保护的. 对于python来说,只有两个成员修饰符:公有成员,私有成员 成员修饰符是来修饰谁呢?当然是修饰成员了.那么python类的成 ...
- SQL中@@ROWCOUNT函数
返回受上一语句影响的行数.如果行数大于 20 亿,请使用 ROWCOUNT_BIG. 语法 @@ROWCOUNT 返回类型 int 注释 Transact-SQL 语句可以通过下列方 ...
- SQL获取前一天0:00:00至23:59:59数据
一.前言 因为我公司要做财务结算前一天0:00:00至23:59:59的数据,利用到动态拼接SQL语句 我们需要明白声明DateTime 和 Date 获取的时间格式是不一样的,所以通过此计算有利于得 ...
- Windows命令行(DOS命令)教程-3(转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_2.html
五.常用命令 DOS命令总共大约有一百个(包括文本编辑.查杀病毒.配置文件.批处理等),我们这里详细介绍二十个常用的DOS命令. 先介绍一下通配符的概念. 通配符*和? *表示一个字符串 ?只代表一个 ...
- 我永远的 dell 15r
陪伴我三年多的15r 让我疯狂过.努力过.更记录了我很多的成长,与很多个瞬间.看到它是有感情的.还记得第一次失去她.我好像失去了自己. 我是一个程序员.每个程序员都有自己的环境配置.不同的软件.就是 ...
- URI和URL
URI(uniform resource identifier),统一资源标识符,用来唯一的标识一个资源. URL(uniform resource locator),统一资源定位器,它是一种具体的U ...
- hdu 2564 词组缩写
Problem Description 定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写. 比如,C语言里常用的EOF就是end of file的缩写. Input 输入的第一行是一个整数T ...