如何为Android应用程序集成字体的问题

时间:2011-08-29 13:23:20

标签: android android-layout fonts android-emulator android-widget

我想为我的应用程序设置字体。字体就像“JOURNAL”。 但问题是,我不知道如何将其集成到myapplication中。如果我整合它,那么它将适用于所有应用程序还是仅适用于所选应用程序?因为我希望它只为一个应用程序设置。不是所有人。 那么我应该怎么做? 我见过here。但我认为它仅适用于TextView而不适用于整个应用程序字体。 那么,我在清单文件中有什么需要做的吗???或者我还有什么需要做的? 请帮帮我。

2 个答案:

答案 0 :(得分:2)

我同意@Kheldar声明。没有方法可以更改Android应用中的字体。每次要更改元素的字体时,请尝试使用此代码以避免调用set方法。

public class MyTextView extends TextView {

Context context;
String ttfName;

public MyTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.context = context;

    for (int i = 0; i < attrs.getAttributeCount(); i++) {
        this.ttfName = attrs.getAttributeValue("http://schemas.android.com/apk/res/com.package.my", "ttf_name");

        init();
    }
}

private void init() {
    Typeface font = Typeface.createFromAsset(context.getAssets(), ttfName);
    setTypeface(font);
}

@Override
public void setTypeface(Typeface tf) {
    super.setTypeface(tf);
}

}

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:package="http://schemas.android.com/apk/res/com.package.my"
    android:id="@+id/container"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="15dp"
        android:layout_height="15dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="10dp" />
    <com.package.my.MyTextView
        android:id="@+id/label"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_toRightOf="@+id/icon"
        package:ttf_name="My-font.otf" />
</RelativeLayout>

答案 1 :(得分:1)

您无法从应用程序修改系统范围内的字体(至少,据我所知并禁止某些漏洞利用)。

研究此链接:http://mobile.tutsplus.com/tutorials/android/customize-android-fonts/