更改应用程序字体?

时间:2011-07-18 10:43:35

标签: android fonts

有没有办法更改整个Android应用程序的字体?

我知道changing TextView's font。我想在所有活动中更改所有listview项目,TextViews,ButtonTexts等的字体。

我能为此做些什么吗?它与清单有关吗?

感谢。

2 个答案:

答案 0 :(得分:0)

不幸的是,没有办法为整个应用设置默认字体。您必须在每个视图上执行setTypeface(tf)

另一种方法是对每个View类型进行子类化,并在this answer中的建议中在其构造函数中应用字体。

答案 1 :(得分:0)

嗨检查这个http://developer.android.com/guide/topics/ui/themes.html

在此定义应用程序的样式和主题。

创建自定义样式和主题,并为具有不同样式和主题的单个/多个控件设置

这是我的main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/linear">
<TextView android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:text="@string/hello" style="@style/CodeFont"/>
<Button android:id="@+id/btn" android:layout_width="200dp"
    android:layout_height="wrap_content" android:text="Click" style="@style/CodeFont"/>
<ImageView android:id="@+id/img_preview"
    android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>

这是我的style.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">monospace</item>
</style>
</resources>