147

aStringがの幅より長い場合、TextView自動的に次の行に折り返されます。android:singleLine(非推奨)を使用するか、を設定することで、これを回避できますandroid:inputType="text"。今必要なのは、私の最後の3文字Stringを「...」に置き換えるものです。私は等幅フォントを使用していないので、これは私ので使用されている文字によって常に異なりますStringTextViewしたがって、文字列の最後の3文字を取得して、それらを置き換えるための最良の方法は何でしょうか。これは一般的な問題であるに違いないため、Androidフレームワークにはすでに何かが実装されている可能性があります。

4

3 に答える 3

320

テキスト ビューの「ellipsize」プロパティを使用できるはずです。

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

レイアウトにも重力値を適用する必要がある場合があります。それらのない「自動ストレッチ」ビューを時々見ました。

于 2009-11-03T13:28:27.077 に答える
35

この問題に対する興味深い回避策が見つかりました。

maxLines=1
ellipsize=end
scrollHorizontally=true

トリックは、水平スクロールに関する最後のステートメントです....チェックしてください。少なくとも v2.2 で動作します。

于 2011-05-19T06:01:15.667 に答える
5

プログラムでは、次を使用できます。

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);
于 2014-12-04T13:58:01.660 に答える