-2

我有一个应用程序,我想在整个应用程序中更改文本的字体。
无论如何以编程方式或在清单中使用 xml更改应用程序的字体。?

4

4 回答 4

2

尝试这个

1.将您的 ttf 文件放在 assets 文件夹中,并将这些行添加到您的 java 文件中

Typeface font = Typeface.createFromAsset(activity.getAssets(),"fonts/androidnation.ttf");

tv.setTypeface(font);

2.通过xml设置

XML 字体

于 2013-12-17T09:32:42.903 回答
0

最简单的方法是创建自己的 TextView:

public class MyTextView extends TextView {

    public DMTextView(Context context, AttributeSet attrs) {
      super(context, attrs);
      // you need your TypefaceFile "myTypeface.ttf" in the assets folder of your project
      setTypeface(Typeface.createFromAsset(context.getAssets(),"myTypeface.ttf"));
    }

    // add the other constructors if you want
}

现在,您可以在 xml 中的任何位置使用它: <com.your.package.MyTextView ... >就像普通的 textviews

它可以通过缓存字体来改进,因此您不必在每次引用您的 TextView 时再次创建它。

于 2013-12-17T09:31:01.890 回答
0

将字体放在字体文件夹中,然后使用以下代码。

TextView tv = (TextView) findViewById(R.id.appname);
Typeface face = Typeface.createFromAsset(getAssets(),"fonts/epimodem.ttf");
tv.setTypeface(face);

这是以编程方式设置字体的方法。

于 2013-12-17T09:36:49.817 回答
0

在资产中创建字体文件夹并粘贴您要粘贴的任何字体。

创建一个类。将其命名为Typesafe.java

public enum TypeSafe {
   HELVETICANEUELTCOMBD,
   HELVETICANEUELTCOMBDCN,
   HELVETICANEUELTCOMCN,
}

之后,在您的Activity或如果您有Utility该类中创建一种方法。

public void setTypeface(TextView textView, TypeSafe type, AssetManager assetManager){
    if (TypeSafe.HELVETICANEUELTCOMBD.equals(type)) {
        final Typeface typeface = Typeface.createFromAsset(assetManager, "fonts/HelveticaNeueLTCom-Bd.ttf");
        textView.setTypeface(typeface);
    } else if (TypeSafe.HELVETICANEUELTCOMBDCN.equals(type)) {
        final Typeface typeface1 = Typeface.createFromAsset(assetManager, "fonts/HelveticaNeueLTCom-BdCn.ttf");
        textView.setTypeface(typeface1);
    } 
}

在你的activity.

setTypeface(yourtextView, TypeSafe.HELVETICANEUELTCOMLT, getAssets());
于 2013-12-17T09:41:37.593 回答