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

ann*_*nie 9 android textview android-canvas

我是以编程方式创建具有不同字符串的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)
Run Code Online (Sandbox Code Playgroud)

我知道,我想TextUtils.TruncateAt.END,但我不能找出我应该定义bufstart,bufendellipsizedWidth.我特别找不到这个构造函数的任何好例子,或者它是否有助于实现我的目标.

小智 4

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

  • bufstart - 要包含在布局中的第一个字符(在源代码中)的索引
  • bufend - 要包含在布局中的最后一个字符的索引
  • outerwidth - 我认为包含所有文本的假想框的宽度(我刚刚将其变得非常非常宽)
  • ellipsizedwidth - 绘图的框的宽度,如果超过此值,文本将被修剪

抱歉,我的答案不太自信,但我仍在学习!