0

我正在将文本绘制到画布中,并希望分配一个矩形,以便文本在到达右侧边界时中断并转到下一行。我可以设置一个“对齐”属性,所以很明显存在右侧和中间的概念,但我不知道如何指定文本框的宽度。

TIA

编辑...我感觉我将不得不推出我自己的使用 Paint.breakText 方法的换行符插入方法。我*真的希望不是这样!:)

edit2 .. 因此,最重要的是,drawText 忽略了 \n 并将其绘制为 [] 缺失的字符。

我写了一个解决方法,将每一行的文本原点向下移动,但是 BOY 太丑了!

4

2 回答 2

1

Paint.getTextBounds 返回您的字符串宽度

“返回边界(由调用者分配)包围所有字符的最小矩形,隐含原点位于 (0,0)。”

我认为您很可能需要自己手动绘制字符串

于 2012-07-11T05:53:39.250 回答
0

您应该使用 aStaticLayout而不是尝试自己破坏文本。它具有换行的规定。引用文档:

除非您正在实现自己的小部件或自定义显示对象,否则您不需要直接使用此类,或者很想Canvas.drawText()直接调用。

于 2012-07-11T04:35:05.940 回答