【发布时间】:2013-12-03 01:32:44
【问题描述】:
我们的一位开发人员遇到了Paint.breakText()(说它计算“字符”)实际上计算字形的问题。
想象一下,您只包装了一个单词"fit"。它将适合在线,因此您希望breakText() 返回 3。在某些设备上,它确实如此;在其他情况下,“fi”形成一个连字,breakText() 返回 2。这会导致你画画
fi
t
...这不是你想要的!
有吗
-
make
breakText()计算 Java 字符而不是字形的标志?或者 - 一种检测
"fi"将被视为单个字形的方法?
【问题讨论】:
-
是的,我看到了。但是,你知道,这实际上是相反的问题:“由 'l's 和 'f's 组成的字符串延伸到矩形之外”而不是连字过早断开的字符串。
-
..如果你只是想计算字符,你不能用 String.length() 吗?
-
感谢您的帮助,朱利叶斯,但是是什么让您认为 String.length() 有任何相关性?想象一下,您正在尝试缠绕更长的字符串,例如“五个 floozies 固定鱼松饼” - 所有这些连字都会导致类似的问题,但这是一个更糟糕的示例,因为发生错误缠绕的位置将取决于窗口宽度。