10

プログラムでさまざまな文字列を使用して StaticLayouts を作成し、それぞれをビットマップに適用してキャンバスに追加しています。SL コンストラクターで定義した固定の高さによって切り取られる前に、SL は最大 2 行を表示します。ただし、テキストが表示されているものよりも長いことを示す省略記号はありません。

http://developer.android.com/reference/android/text/StaticLayout.htmlから、3 番目のコンストラクターの最後に切り捨て引数があることがわかります。

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)

が欲しいのはわかっていますが、 、、およびTextUtils.TruncateAt.ENDに対して何を定義すればよいかわかりません。特にこのコンストラクターの良い例を見つけることができなかった、またはそれが私の目標を達成するのに役立つかどうか.bufstartbufendellipsizedWidth

4

1 に答える 1

4

Android に 100% 精通しているわけではありませんが、私自身も同じ問題を抱えており、これが私が見つけたものです。

  • bufstart - レイアウトに含める (ソース内の) 最初の文字のインデックス
  • bufend - レイアウトに含める最後の文字のインデックス
  • 外側の幅 - すべてのテキストを含む架空のボックスの幅だと思います (本当に幅を広くしました)
  • ellipsizedwidth - 描画するボックスの幅。これを超えるとテキストがトリミングされます

自信のない回答で申し訳ありませんが、まだまだ勉強中です!

于 2013-03-25T12:54:54.750 に答える