アンドロイド:TextViewには自動的に切り捨て、文字列の最後の3文字を置き換えます
質問
String
がTextView
の幅より長い場合は、は、自動的に次の行に折り返されます。私はandroid:singleLine
(非推奨)を使用するか、android:inputType="text"
を設定することで、これを回避することができます。私は今、必要なのは「... のの」と私のString
の最後の3つの文字を置き換えるものです。私は固定幅フォントを使用していないので、これは常に私のString
で使用される文字によって異なります。だから私はTextView
内の文字列の最後の3つの文字を取得し、それらを交換するための最良の方法です何を思ったんだけど。これは共通の問題でなければならないので、たぶん、Androidのフレームワークで実装何かが、すでにそこにいます。
解決
あなたはテキストビューの「ellipsize」プロパティを使用することができる必要があります:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_mytext"
android:ellipsize="end"
android:maxLines="1"
/>
あなたは、あまりにもレイアウトに重力値を適用する必要があるかもしれません。私は時々彼らなしで「オートストレッチ」ビューを見てきています。
他のヒント
この問題のための興味深い仕事ラウンドを見つけます。
maxLines=1
ellipsize=end
scrollHorizontally=true
トリックは、水平方向のスクロールについての最後の文が....それをチェックアウトすることです。それは、少なくともバージョン2.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);
所属していません StackOverflow