2012-06-08 4 views
7

私はさまざまな文字列を使用してプログラムで静的レイアウトを作成してから、それぞれをビットマップに適用してキャンバスに追加します。 SLは、SLコンストラクタで定義した固定高さで切り取られる前に、最大2行表示されます。しかし、テキストが表示されているものより長いことを示す省略記号はありません。 bufend、私はTextUtils.TruncateAt.ENDが欲しい知っテキストに楕円を追加する方法StaticLayoutがその高さを超えたら?

StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth) 

が、私はbufstartのために定義すべきかを把握することはできません。http://developer.android.com/reference/android/text/StaticLayout.htmlから

私は第三のコンストラクタは、最後に切り捨て引数を持っていることがわかり、およびellipsizedWidth。私は特にこのコンストラクタの良い例は見つけられませんでした。もしそれが私の目標を達成する助けになるのであれば。

答えて

1

ない100%のAndroidに精通し、同じ問題を自分で持っていた、これは私が見つけたものです:

  • bufstart - (ソースの)最初の文字のインデックスはレイアウト
  • に含めます
  • bufend - レイアウト
  • outerWidthの中に含めるための最後の文字のインデックス - の幅 - 私はすべてのあなたのテキスト(私はちょうどそれが本当に広い作りました)
  • ellipsizedwidthを含む仮想ボックスの幅を考えますあなたのボックスにあなたの絵を描き、テキストを切り抜くds this

ご迷惑をおかけして申し訳ありませんが、まだ学習中です!

関連する問題