为什么 textStyle 斜体在 Android 布局中不适用于衬线以外的其他字体?

2022-09-04 23:05:53

下面是一个简单的 xml 代码段,它不适用。android:textStyle="italic"

如果我删除文本将出现。android:textStyle="italic

<TextView
    android:text="row one"
    android:textSize="15pt"
    android:typeface="serif"
    android:textStyle="italic"
    android:textColor="#00abcd"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>

在上面只适用于,如果我将字体更改为sans,等宽或正常,则不显示。android:textStyle="italic"android:typeface="serif"android:text

为什么?


答案 1

尝试通过字符串文件使文本斜体,这是替代方案,这可能会对您有所帮助

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="Row_one"><i>Row one</i></string>
    <string name="Row_two"><i>Row two</i></string>
</resources>

答案 2

我没有帮助你,但我在代码中设置字体+样式时遇到了同样的问题,但仅限于某些三星设备,因此它可能是特定于设备/制造商的。

int supportedStyles = Typeface.create(TypeFace.DEFAULT, Typeface.BOLD_ITALIC).getStyle();
boolean italicSupported = (supportedStyles & Typeface.ITALIC) != 0;

italicSupported 始终等于 true(Monospace 除外),但在几台三星设备(Galaxy II,Note 8)上,文本不会显示为斜体。Nexus 7还可以,Archos 80还可以。


推荐