2

我正在构建一个应用程序,并希望确保它使用 android 提供的默认“sans”字体类型。

我安装了一些奇怪的字体并将其设置为我的手机使用的字体,这样我就可以测试我的操作是否有效。

然后我更改了所有屏幕使用的主题,因此它包含以下行:

<item name="android:typeface">sans</item>

虽然这没有任何影响......

如果我将主题字体行更改为:

<item name="android:typeface">serif</item>

然后它确实起作用了,奇怪的字体没有显示,但我得到了默认的 android serif 字体......当我使用等宽字体时也会发生同样的情况......

但是当我使用 sans (或正常)时,它使用新安装的字体。

有谁知道实现这一目标的好方法?


编辑:我需要一种方法来为整个应用程序设置它,而不是为每个项目单独设置


Edit2:即使我在 xml 中设置它也不起作用。到目前为止,我认为衬线有效果,因为奇怪的字体没有衬线版本。所以android默认使用自己的字体。

我怎样才能让安卓总是使用它自己的内置字体?

4

2 回答 2

0

你可以这样做,

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:typeface="serif"
    android:text="@string/hello" />

变成这样:

<TextView
    style="@style/CodeFont"
    android:text="@string/hello" />

通过定义一个 xml 主题文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">shreif</item>
    </style>
</resources>

您还可以将样式应用于应用程序的所有活动:

<application android:theme="@style/CustomTheme">

或者只是一项活动:

<activity android:theme="@android:style/Theme.Dialog">
于 2012-04-30T13:18:16.460 回答
0

这是我前段时间提出的一个问题,但一直没有找到答案。没关系。我认为最后:设备的每个供应商都可以为您提供另一种默认字体。

所以我决定在应用程序中打包“我自己的”字体。

(嗯,我想这里的每个人都在学习)

于 2012-08-08T16:47:26.770 回答