android:整个应用程序的字体系列

时间:2013-08-01 06:29:05

标签: java android

我不想使用我的应用的默认字体。

我想使用我想要的字体。

因此,我将所需的字体复制到assets/fonts/文件夹中,编码如下所示。

但是,会发生错误。

请帮我使用完整应用程序使用相同的字体。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LinearLayout ll = new LinearLayout(this);
    ll.setBackgroundResource(R.drawable.bg);
    this.setContentView(ll);
    TextView tv = (TextView) findViewById(R.id.app_name);
    Typeface face = Typeface.createFromAsset(getAssets(),
                    "fonts/TAU_MADN.TTF");
    tv.setTypeface(face);

更新:

我的xml TextView代码;

  <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="app_name"
        android:textStyle="bold" />

错误:

  

错误:错误:不允许字符串类型(在'id'处,值为'app_name')。

4 个答案:

答案 0 :(得分:0)

请确保路径已正确发出,例如包含extension.TTF或.ttf {与font文件夹中的名称相同的名称}的区分大小写的内容,包括文件夹名称“FONTS”!。

答案 1 :(得分:0)

您的错误与将自定义字体作为资源加载无关。

在您的布局R.layout.activity_main中,没有TextView ID为R.id.app_name,因此当您在代码中初始化TextView时,将会抛出错误。

确保您的布局中有TextViewTextView

如果您认为确实已经在布局中设置了android:id="@+id/app_name" ,请尝试清理项目。

修改

添加如下ID:

Typeface face = Typeface.createFromAsset(getAssets(),
                    "fonts/TAU_MADN.ttf"); // lowercased ".ttf" reference

还要使用小写的“.ttf”扩展名重命名您的字体,并且对它的引用都是相同的。

{{1}}

有关您的问题的详情,请参阅here

答案 2 :(得分:0)

这可以帮到你:

更改 TextView 中的android:id属性,如:

<TextView
        android:id="@+id/app_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold" />

并在代码中更改此行:

Typeface face = Typeface.createFromAsset(getAssets(),
                    "fonts/TAU_MADN.ttf");

答案 3 :(得分:0)

Android仅允许整数类型ID

你提到错误的字符串类型ID

更改此行

android:id="app_name"

android:id="@+id/app_name"