0

Canvas にテキストを描画していて、テキストが右側の境界に達した場合にテキストが壊れて次の行に移動するように四角形を割り当てたいと考えています。設定できる「整列」プロパティがあるので、明らかに右側と中央の概念が存在しますが、テキスト ボックスの幅を指定する方法がわかりません。

ティア

編集... Paint.breakText メソッドを利用する独自の改行挿入メソッドをロールバックする必要があると感じています。私はそうではないことを本当に願っています! :)

edit2.. したがって、何よりも、drawText は \n を無視し、[] の欠落した文字として描画します。

テキストの原点を行ごとに下に移動する回避策を書きましたが、BOYはこの醜いです!

4

2 に答える 2

1

Paint.getTextBounds は、文字列の幅を次のように返します

「(呼び出し元によって割り当てられた)範囲内で、すべての文字を囲む最小の長方形を返します。暗黙の原点は(0,0)です。」

自分で文字列を手動で描画する必要がある可能性が最も高いと思います

于 2012-07-11T05:53:39.250 に答える
0

StaticLayout自分でテキストを分割しようとする代わりに、a を使用する必要があります。これには、ライン ラッピングが用意されています。ドキュメントから引用するには:

独自のウィジェットまたはカスタム表示オブジェクトを実装する場合、または直接呼び出したくなる場合を除き、このクラスを直接使用する必要はありませんCanvas.drawText()

于 2012-07-11T04:35:05.940 に答える