setEllipsize(TruncateAt where)

void android.widget.TextView.setEllipsize(TruncateAt where)

public void setEllipsize (TextUtils.TruncateAt where)

当文本长于视图时,可用ellipsize()方法进行设置以显示完整的文本,而不是在中间截断原来的文本。您可能还想要用setSingleLine()或setHorizontallyScrolling(bool)来限制为单行文本。可以使用null关闭ellipsize。如果setMaxLines(int)被用来设置两行或两行以上的文本,只有END和MARQUEE被ellipsize方法支持(其他ellipsiz类型将不会做任何事情)。

相关xml属性:android:ellipsize

如果设置了,则必须为下列的值之一:

constant value
none 0
start 1
middle 2
end 3
marquee 4

与之相关的方法TextUtils.TruncateAt.flags的参数flags如下

public static final TextUtils.TruncateAt END

public static final TextUtils.TruncateAt MARQUEE

public static final TextUtils.TruncateAt MIDDLE

public static final TextUtils.TruncateAt START

测试后发现参数flags作用如下:

当文本长度超过View时,END表明从文本开始截取view最大可以显示的宽度,不可见的部分将无法看到,也无法滑动span去查看。MARQUEE设置走马灯效果(常常配合setMarqueeRepeatLimit()使用),不用多说。START表示:取得文本的全部长度,不可见部分(即超出view部分)可以用手滑动span进行查看.与MIDDLE类似。

下面是一个例子:

tv.setEllipsize(TextUtils.TruncateAt.MARQUEE);

tv.setMarqueeRepeatLimit(4);

设置当文本过长时(超过tv文本域),用跑马灯的方式显示文本,并设置重复次数为4次。


作者:KillerLegend
出处:http://www.cnblogs.com/KillerLegend/
分享最新的资源,分享个人所得,欢迎关注我的新浪微博
新浪微博主页:ikey4u
我的个人博客:www.ikey4u.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 
原文地址:https://www.cnblogs.com/killerlegend/p/3242839.html