我有一个按钮,其中有文本“发送文件”,但我看不到“i”顶部的点。我使用默认字体(据我所知,这是“sans”,但如果我错了,请纠正我。)
以下是xml
的{{1}}:
Button
如果某人有某种技巧可以在“i”上显示点,那就太好了,因为它现在很难看......
我正在使用Nexus 7,如果有帮助的话。
答案 0 :(得分:8)
您看到的是'{3}}字形,用于组合'f'+'i'字符。通常,独立的'f'+独立'i'的组合最终会发生冲突:'f'的悬垂部分将与'i'的点碰撞。
使用连字字形来表示字符组合可以让字体设计师避免碰撞。在这种情况下,字体设计者选择省略'i'的点。在其他字体设计中,'i'的点将保留,但'f'的悬垂部分的长度将改变,以避免碰撞。如果你检查一些其他字体设计,包括'f'+'i'的结扎,你会看到这些不同的视觉处理。由于这是字体设计的决定,因此很难将其定性为“错误”;更像是“糟糕的设计”(我同意你的看法,它看起来不太好)。
答案 1 :(得分:3)
从Lollipop开始,您现在可以使用android:fontFeatureSettings
或setFontFeatureSettings()
来disable ligatures。
答案 2 :(得分:2)
要停用连字,您可以使用wait_window
上的android:fontFeatureSettings属性。此属性接受CSS属性TextView
的有效值。这是来自MDN的list of examples。他们举了一个在那里禁用连字的例子。
以下是font-feature-settings
的使用方法(我已经验证了这一点):
TextView
您也可以在styles.xml中执行此操作:
android:fontFeatureSettings="liga 0"
答案 3 :(得分:1)
更改字体是目前唯一可行的解决方案。 Roboto-Regular
不能很好地处理Ligature字形。尝试将字体更改为sans
。它不优雅,但它有效。
答案 4 :(得分:0)
我知道这篇文章很老但是当你谷歌“在Android上禁用连字”时它是最好的结果。显然有一种方法可以做到这一点,但它只适用于API 21和更新版本。所以这是我的解决方案。下载免费的字体编辑程序FontForge,从实际字体(fi和fl)中删除连字字形,然后重新保存字体文件。像魅力一样工作!