如何确保android使用默认字体?

时间:2012-04-30 13:13:47

标签: android android-fonts

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

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

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

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

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

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

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

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

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

有没有人知道实现这个目标的好方法?


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


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

如何让andoid永远使用自己的内置字体?

2 个答案:

答案 0 :(得分: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">

答案 1 :(得分:0)

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

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

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