Android:TextView自动截断并replaceString的最后3个字符

如果一个StringTextView的宽度长,它会自动换行到下一行。 我可以通过使用android:singleLine (不build议使用)或者通过设置android:inputType="text"来避免这种情况。 我现在需要的是用“ ”replace我的String的最后3个字符。 由于我没有使用一个等宽字体,这将始终是不同的,这取决于我的String使用的字母。 所以我想知道什么是最好的方式来获得一个string在TextView的最后3个字符,并将其replace。 也许在Android框架中已经实现了一些东西,因为这是一个常见的问题。

您应该可以使用文本视图的“ellipsize”属性:

 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text_mytext" android:ellipsize="end" android:maxLines="1" /> 

您也可能需要将重力值应用于布局。 我有时看到没有它们的“自动伸展”的观点。

为这个问题find了一个有趣的工作。

 maxLines=1 ellipsize=end scrollHorizontally=true 

诀窍是关于水平滚动的最后一个声明….检查出来。 它至less在v2.2上工作。

以编程方式

您可以使用

 TextView tx = new TextView(this); tx.setTextSize(13); tx.setGravity(Gravity.CENTER); tx.setTop(90); tx.setText("Long text here"); tx.setTextColor(Color.BLACK); tx.setSingleLine(true); tx.setEllipsize(TruncateAt.END);