0

EditText300dp * 300dp の制限付きサイズのビューがあります。

この EditText は、サーバーから受信した一部の説明のプレビューを表示するために使用されるため、テキストが長すぎる場合は最後の行で切り取られて表示されます。テキストが長すぎる場合は、完全に表示されている最後の行の最後に中断ポイントを表示して、切り捨てを回避する必要があります

テキストの場合

Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. 

最大表示テキストが

Lorem ipsum dolor sit amet, consectetur adipisici elit,

EditText が表示されるはずです

Lorem ipsum dolor sit amet, consectetur adipisici...

解決策はありますか?

4

2 に答える 2

7

あなたのメッセージがサーバーから取得した説明であり、ユーザーがそれを編集するのはあまり役に立たない場合は、TextView代わりに使用してみませんか?

    <TextView
        ...
        android:ellipsize="end"
        android:singleLine="true" />

で達成できるのと同じですがEditText、 も設定する必要がありますandroid:editable="false"

于 2012-07-21T10:18:33.917 に答える
0

PaintクラスのmeasureTextを使用して、テキストの幅を測定できます。テキストがビューに対して長すぎる場合は、その幅に収まる部分文字列を検索してください。

たとえば、view次の場合EditText:

String text = "Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.";
String subtext = text;
Paint paint = view.getPaint();

while( paint.measureText(subtext) > view.getWidth() ) {
    subtext = subtext.substring(0, subtext.lastIndexOf(' '));
}

view.setText(subtext + "...");
于 2012-07-21T10:40:39.220 に答える