1

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

我想使用我想要的字体。

因此,我在文件夹中复制了我想要的字体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);

更新:

我的xmlTextView代码;

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

错误:

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

4

4 回答 4

0

请确保已正确提供路径,例如区分大小写的内容,包括扩展名.TTF 或 .ttf {same name as in the fonts folder},包括文件夹名称“FONTS”!。

于 2013-08-01T06:35:15.467 回答
0

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

在您的布局R.layout.activity_main中没有TextViewid: R.id.app_name,因此当您TextView在代码中初始化它时,将引发错误。

确保你TextView的布局中有这样的。

如果您认为您已经TextView布局中拥有它,请尝试清理项目。

编辑

添加id如下:

android:id="@+id/app_name"

还要用小写的“.ttf”扩展名重命名你的字体,并且对它的引用都是一样的。

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

有关您的问题的更多信息,请参见此处

于 2013-08-01T06:55:22.253 回答
0

Android 仅允许整数类型 id

你提到字符串类型 id 那是你的错误

更改此行

android:id="app_name"

android:id="@+id/app_name"
于 2013-08-01T07:06:00.043 回答
0

愿这对您有所帮助:

更改TextViewandroid: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");
于 2013-08-01T07:01:27.217 回答