Android 在单词末尾省略TextView

Android 在单词末尾省略TextView,android,android-layout,textview,Android,Android Layout,Textview,我正在使用TextView的android:ellipsize属性,以及android:maxLines使文本适合最多3行 问题是有时文本在单词的中间被切掉。我只想在单词的末尾省略这段文字。例如: 安卓太棒了 现在看起来是这样的: 安卓令人敬畏 但我希望它看起来像这样: 安卓是 此外,用户可以在此TextView中动态更改textSize,因此很难预测最后一个单词 有没有办法只在单词的末尾省略?如果系统不允许这样做,是否有任何库可以提供这样的功能,或者唯一的可能是编写我自己的类来实现这一功能?您

我正在使用
TextView
android:ellipsize
属性,以及
android:maxLines
使文本适合最多3行

问题是有时文本在单词的中间被切掉。我只想在单词的末尾省略这段文字。例如:

安卓太棒了

现在看起来是这样的:

安卓令人敬畏

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

安卓是

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


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

您必须为textview指定省略号为“end”。然后在设置文本后,将globallayout listener添加到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);
           }    
        }
    });

}

1.获取你的文本大小;2.获取您的文本视图大小;3.运用数学;4.对您的应用程序进行适当的更改text@MocialovBoris你还没有回答我的问题。我对如何使我自己的类实现所需的功能有一个想法,但我想问一些我可以用来节省时间的现有解决方案。这不是试图回答您的问题,而是描述解决您问题的一种方法的注释。