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
秘Theは、水平スクロールに関する最後のステートメントです....確認してください。少なくとも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);