我正在为我的游戏使用Android Monospace字体,并发现该字体的行为与预期不符。游戏依赖于顶部角色和下面的下划线相互排列,作为解决密码的线索。然而,当单词非常接近TextView
的边缘时,如图中所示的第5行所示,蓝色文本行进入下一行,导致线索和答案不同步。
我使用TextView.setTypeface(Typeface.MONOSPACE)
作为两行(嗯......一种非常接近它的字体 - 但问题也发生在MONOSPACE上)。
任何想法可能导致这种情况以及如何解决它?
答案 0 :(得分:0)
事实证明,TextView
文本换行的算法并不那么简单 - 下一个单词是否适合这一行 - >如果不把它放在下一行。
稍后在该截图中,黑色和蓝色的文本不同(一个显示引用的作者,另一个不显示)。似乎TextView
正在尝试最小化线条,在完成此操作后,它会使宽度最小化。鉴于截图中的两个文本是〜1行文本不同,最后的小单词可以重新排列以使TextView
的宽度更小。这就是导致问题的原因 - 事实上,字体是(据我所知)完全等宽的。
我认为这个问题的正确解决方案是扩展TextView
并制作自定义onDraw()
来解决问题。对我来说,只需要使两个文本显示完全相同的单词(但其中一个通过替换密码)就足够了。