fontFeatureSettings=smcp 在 Android 中不起作用
fontFeatureSettings=smcp doesn't work in Android
我需要在 TextView 中显示 SmallCaps 文本。我正在尝试使用以下代码:
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFeatureSettings="smcp"
android:textColor="@color/black"
android:textSize="16sp"
android:text="TEXT" />
但它只显示普通文本,没有 SmallCaps 效果。我也尝试以编程方式设置它 (text1.fontFeatureSettings = "smcp"
),但也没有成功。
如何在 Android 中制作 SmallCaps 文本?为什么 fontFeatureSettings 不起作用?
为了使此功能正常工作,您必须拥有一种实际具有小型大写字符的字体 - 因此要使其正常工作,请通过 app:fontFamily(android:fontFamily)
传递带有小型大写字母的字体,例如 Aller Display
,然后使用 android:fontFeatureSettings="smcp"
使其成为小型大写字母。
希望对您有所帮助
编辑
正如@Cliabhach 在评论中指出的那样,在代码中它看起来像
text1.typeface = resources.getFont(R.font.Aller_Display)
text1.fontFeatureSettings = "smcp"
编辑2
谨记
对于那些不知道的人 - 小型大写字母仅适用于小写字符
因为你正在使用 TextView
所以我猜你在运行时为它设置了值就像你说你有一些 String
对象将被设置为 TextView
像:
textView.setText(someStringObj);
因此您可以通过添加以下内容轻松将其设置为小写:
textView.setText(someStringObj.toLowerCase());
我需要在 TextView 中显示 SmallCaps 文本。我正在尝试使用以下代码:
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFeatureSettings="smcp"
android:textColor="@color/black"
android:textSize="16sp"
android:text="TEXT" />
但它只显示普通文本,没有 SmallCaps 效果。我也尝试以编程方式设置它 (text1.fontFeatureSettings = "smcp"
),但也没有成功。
如何在 Android 中制作 SmallCaps 文本?为什么 fontFeatureSettings 不起作用?
为了使此功能正常工作,您必须拥有一种实际具有小型大写字符的字体 - 因此要使其正常工作,请通过 app:fontFamily(android:fontFamily)
传递带有小型大写字母的字体,例如 Aller Display
,然后使用 android:fontFeatureSettings="smcp"
使其成为小型大写字母。
希望对您有所帮助
编辑
正如@Cliabhach 在评论中指出的那样,在代码中它看起来像
text1.typeface = resources.getFont(R.font.Aller_Display)
text1.fontFeatureSettings = "smcp"
编辑2
谨记 对于那些不知道的人 - 小型大写字母仅适用于小写字符
因为你正在使用 TextView
所以我猜你在运行时为它设置了值就像你说你有一些 String
对象将被设置为 TextView
像:
textView.setText(someStringObj);
因此您可以通过添加以下内容轻松将其设置为小写:
textView.setText(someStringObj.toLowerCase());