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次。

posted @ 2013-08-07 12:15  KillerLegend  Views(3738)  Comments(0Edit  收藏  举报