如何在文本StaticLayout超出其高度时添加省略号?

时间:2012-06-08 01:45:13

标签: android android-canvas textview

我以编程方式创建具有不同字符串的StaticLayouts,然后将每个字符串应用于随后添加到画布的位图。 SL在被我在SL构造函数中定义的固定高度切断之前最多显示两行。但是没有省略号表示文本长于显示的内容。

http://developer.android.com/reference/android/text/StaticLayout.html我看到第三个构造函数在结尾处有截断参数:

StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth)

我知道我希望TextUtils.TruncateAt.END,但我无法弄清楚我应该为bufstartbufendellipsizedWidth定义什么。我特别找不到这个构造函数的任何好例子,或者它是否有助于实现我的目标。

1 个答案:

答案 0 :(得分:3)

不是100%熟悉Android,但我自己也有同样的问题,这就是我发现的:

  • bufstart - 要包含在布局中的第一个字符(在源中)的索引
  • bufend - 要包含在布局中的最后一个字符的索引
  • outerwidth - 我认为包含所有文本的虚构框的宽度(我刚才真的很宽)
  • ellipsizedwidth - 您绘制的框的宽度,如果超出此范围,文本将被裁剪

很抱歉没有那么自信的答案,但我还在学习!