2012-02-04 14 views

答えて

0

onDraw()関数でStaticLayout(静的なテキストの場合)またはDynamicLayout(ダイナミックなテキスト)を試してみると、これは最大の幅を与えることができるテキストレイアウトです。 TextUtils.EllipSizeを使用してテキストをカットすることもできます。

+0

私は試しました。たとえば、いくつかのコード行を付けることはできますか? – styanton

1

はい、問題ありません。あなたonDraw(キャンバスC)関数で次のコードを使用します

public void onDraw(Canvas canvas) { 
    TextPaint mTextpaint = new TextPaint(); 
    mTextPaint.setAntiAlias(true); 
    mTextPaint.setTextSize(14); 
    mTextpaint.setColor(Color.MAGENTA); 

    final String mText = "Hello World"; 
    final int maxTextWidth = 40; 

    DynamicLayout dl = new DynamicLayout(mText, mTextPaint, 
     maxTextWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, 1.0f, false); 

    canvas.translate(0, 100); 
    dl.draw(canvas); 
} 

この例では、最大幅、構成TextPaint及びテキストが与えられるのTextLayout(DynamicLayout)を作成します。 ) 私のコメント:サンプルコードが最適化されていないので、他のすべての関数でTextpaintを設定することができますが、イベントのTextとmaxTextWidth - 時にはonDraw()イベントが頻繁に使用されるため、クラスコンストラクタなどのように頻繁に使用されない別の関数にコードを追加する方がよい場合もあります。

+0

ありがとうございます。しかし、それは私が必要とするものではありません。私はCSSで "text-align:justify"のような同じ効果が欲しいです。 – styanton

関連する問題