0

我正在为我的游戏使用 Android Monospace 字体,但发现该字体的行为与预期不符。游戏依靠顶部字符和下面的下划线相互排列作为破解密码的线索。然而,当单词非常靠近TextView图像中显示的第 5 行的边缘时,蓝色的文本行进入下一行,导致线索和答案不同步。

我正在使用TextView.setTypeface(Typeface.MONOSPACE)两条线(嗯......非常接近它的字体 - 虽然问题也发生在 MONOSPACE 上)。

任何想法可能导致此问题以及如何解决?

在此处输入图像描述

4

1 回答 1

0

所以事实证明,TextView文本换行的算法并不像 - 下一个单词是否适合这一行 --> 如果不把它放在下一行那么简单。

稍后在该屏幕截图中,黑色和蓝色的文本不同(一个显示引用的作者,另一个没有)。似乎TextView正在尝试最小化线条,并在完成此操作后最小化宽度。鉴于屏幕截图中的两个文本大约有 1 行不同,最后的小词可以重新排列以使TextView' 的宽度更小。这就是导致问题的原因 - 字体(据我所知)实际上是完美的等宽字体。

我想这个问题的正确解决方案是扩展TextView和定制onDraw()来处理这个问题。对我来说,让两个文本显示完全相同的单词就足够了(但其中一个通过了替换密码)。

于 2016-06-22T22:34:04.913 回答