4

でこれを正しく使用する方法に関するサンプルコードを探していますTextView

私がグーグル検索で見つけた唯一のものは、TextUtilsクラスのこのテストユニットでした

いくつかのガイダンスは大歓迎です。

編集:

ここで得た答えを調べて、コードに実装しようとしました。私はこのコードスニペットを使用しました:

    TextView title = (TextView) view.findViewById(R.id.listitemThreadsTitle);
    title.setVisibility(View.VISIBLE);

    TextPaint p = title.getPaint();
    String strTitle = "Moe, Joe, Isaac, Bethany, Cornelius, Charlie";
    title.setText(strTitle);
    float avail = p.measureText(strTitle);
    CharSequence ch = TextUtils.commaEllipsize(strTitle, p, avail, "one more", "%d more");
    title.setText(ch);

しかし、その結果は、本来あるべき姿とはまったく異なりました。

それはもっと似ていました:萌え、ジョー、アイザック、ベサ...

代わりに:萌え、ジョー、アイザック+ 3

4

1 に答える 1

4
public static CharSequence commaEllipsize (CharSequence text, TextPaint p, 
                                       float avail, String oneMore, String more)

パラメーター:

text-切り捨てるテキスト
p-使用可能な テキストを測定するためのペイント- テキストに 使用できる水平方向の幅
oneMore-現在のロケールの「
1more 」の文字列
more -「% dmore」の文字列現在のロケール

使用例:

String text = "Apple, Orange, Mango, Banana";
TextView tv = new TextView(context);
float textWidth = tv.getPaint().measureText(text );
String tempStr = TextUtils.commaEllipsize(text, tv.getPaint(), textWidth, 
                                           "1 more", "%d more");
tv.setText(tempStr);

アップデート:

TextView title = (TextView) view.findViewById(R.id.listitemThreadsTitle);
title.setVisibility(View.VISIBLE);

TextPaint p = title.getPaint();
String strTitle = "Moe, Joe, Isaac, Bethany, Cornelius, Charlie";
title.setText(strTitle);
float avail = title.getMeasuredWidth();
CharSequence ch = TextUtils.commaEllipsize(strTitle, p, avail, "one more", "%d more");
title.setText(ch);
于 2012-11-22T19:00:48.293 に答える