我正在将文本绘制到Canvas中,并希望指定一个矩形,以便文本中断并在到达右边界时转到下一行。我可以设置一个“对齐”属性,所以很明显右侧和中间的概念存在,但我无法弄清楚如何指定文本框的宽度应该是什么。
TIA
...编辑 我感觉我将不得不推出自己的使用Paint.breakText方法的换行插入方法。我真的希望不是这样的! :)
EDIT2 .. 因此,除了其他所有内容之外,drawText会忽略\ n并将其绘制为[]缺少的char。
我写了一个解决方法,将每行的文本原点向下移动,但是BOY就是这个丑陋!
答案 0 :(得分:1)
Paint.getTextBounds返回
的字符串宽度“返回边界(由调用者分配)包含所有字符的最小矩形,隐含的原点位于(0,0)。”
我认为你很可能需要自己手动绘制字符串
答案 1 :(得分:0)
您应该使用StaticLayout
而不是尝试自己破解文本。它提供了换行。引用文档:
除非您实现自己的窗口小部件或自定义显示对象,否则您不需要直接使用此类,或者想要直接调用
Canvas.drawText()
。