首页 文章

Android monospace字体实际上是固定大小的吗?

提问于
浏览
0

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

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

什么可能导致这个以及如何解决它?

enter image description here

1 回答

  • 0

    事实证明,文本包装的算法并不那么简单 - 下一个单词是否适合这一行 - >如果没有将它放在下一行 .

    在该截图中,黑色和蓝色的文本不同(一个显示引用的作者,另一个不显示) . 似乎 TextView 正在尝试最小化线条,并且在完成之后它最小化宽度 . 鉴于截图中的两个文本是〜1行文本不同,最后的小字可以重新排列,以使 TextView 的宽度更小 . 这就是导致问题的原因 - 事实上,字体是(据我所知)完全等宽的 .

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

相关问题