5

我有一个按钮,其中有文本“发送文件”,但我看不到“i”顶部的点。我正在使用默认字体(据我所知,它是“sans”,但如果我错了,请纠正我)。

这是xml我的Button

            <Button
                android:id="@+id/button_send_files"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_marginBottom="5dip"
                android:padding="20dip"
                android:text="Send files"
                android:textColor="@color/black"
                android:textSize="24sp"
                android:textStyle="bold" />

如果有人有某种技巧可以在“i”上显示点,那就太好了,因为它现在很丑......

如果有帮助,我正在使用 Nexus 7。

在此处输入图像描述

4

5 回答 5

9

您所看到的是'f' + 'i' 字符组合的连字字形。通常,独立的“f”+独立的“i”的组合最终会发生冲突:“f”的悬垂部分会与“i”的点碰撞。

使用连字字形来表示字符组合允许字体设计者避免冲突。在这种情况下,字体设计者选择省略“i”的点。在其他字体设计中,“i”的点将保留,但“f”的悬垂部分的长度会改变以避免碰撞。如果您检查其他一些包含“f”+“i”连字的字体设计,您会看到这些不同的视觉处理。由于这是一个字体设计决定,因此很难将其描述为“错误”;更像是“糟糕的设计”(我同意你的观点,它看起来不太好)。

于 2013-07-15T23:35:44.193 回答
4

要禁用连字,您可以在TextView. 此属性接受 CSS 属性的有效值font-feature-settings。这是来自 MDN的示例列表。他们举了一个在那里禁用连字的例子。

以下是你如何在一个上使用它TextView(我已经验证了它的工作原理):

android:fontFeatureSettings="liga 0"

您也可以在 styles.xml 中执行此操作:

<style name="your_text_style">
    <item name="android:fontFeatureSettings">liga 0</item>
</style>
于 2016-12-22T17:56:35.520 回答
3

从 Lollipop 开始,您现在可以使用或android:fontFeatureSettings禁用连字setFontFeatureSettings()

于 2015-04-04T08:44:29.490 回答
1

更改字体是目前唯一可行的解​​决方案。连字字形处理不好Roboto-Regular。尝试将字体更改为sans. 它不优雅,但它有效。

于 2013-07-24T12:33:46.390 回答
0

我知道这篇文章很旧,但是当您在 google 上搜索“禁用 android 连字”时,它是最好的结果。显然有办法做到这一点,但它只适用于 API 21 和更新版本。所以这是我的解决方案。下载免费的字体编辑程序 FontForge,从实际字体(fi 和 fl)中删除连字字形,然后重新保存字体文件。奇迹般有效!

于 2015-07-14T16:11:24.823 回答