gpt4 book ai didi

android - 单词末尾的椭圆大小的TextView

转载 作者:太空狗 更新时间:2023-10-29 15:28:15 25 4
gpt4 key购买 nike

我正在使用 TextViewandroid:ellipsize 属性,连同 android:maxLines 使文本适合最大数量3 行。

问题是有时文本会在单词中间被截断。我只想在单词的末尾省略文本。例如:

Android is awesome

现在看起来像这样:

Android is awe...

但我希望它看起来像这样:

Android is...

此外,用户可以动态更改此 TextView 中的 textSize,因此很难预测最后一个单词是哪个单词。

有没有办法只在整个单词的末尾省略?如果系统不允许这样做,是否有任何库可以提供此类功能,或者唯一的可能性是编写我自己的类来执行此操作?

最佳答案

您必须将 ellipsize 指定为 TextView 的“结束”。然后在设置文本后,将globallayout监听器添加到textview并更改其文本如下:

TextView articleTitle = (TextView) v.findViewById(R.id.articleTitle);
articleTitle.setText("This is a big big text");
doEllipse(articleTitle);




public void doEllipse(final TextView tv) {
tv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

@Override
public void onGlobalLayout() {
tv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
String text = tv.getLayout().getText().toString();
int text1Index = text.indexOf("…");
if (text1Index > 0) {
text = text.substring(0, text.lastIndexOf(" ")) + "...";
tv.setText(text);
}
}
});

}

关于android - 单词末尾的椭圆大小的TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30001773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com