如何为整个应用程序设置Roboto字体?

时间:2015-03-02 10:55:30

标签: android fonts

您好我想为我的整个应用设置Roboto字体。但登录屏幕中只有1个文本应为Arial字体。可能吗?那怎么样?我试过很多解决方案。但它们都没有效果。请帮帮我。

1 个答案:

答案 0 :(得分:0)

它为我工作,我希望它也会帮助你 只需为Roboto字体创建一个类,而不是TextView使用包名称,后跟XML中的类名,并将Roboto字体放在assest文件夹中。 例如

package com.abc.utils;

import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
/**
 * this class is used for set textview font.
 * @author abc
 *
 */
public class TextViewRoboto extends TextView{
    Context context;

    String TAG = getClass().getName();
    public TextViewEuro(Context context, AttributeSet attrs) { 
        super(context, attrs);
        this.context = context;
        init();
    }

    private void init() {
        Typeface font = Typeface.createFromAsset(context.getAssets(), "yourrobotofontfile.ttf");

        setTypeface(font);
    }

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

}

现在在你的xml中

<com.abc.utils.TextViewRoboto 
                    android:id="@+id/txt_ItemName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="#EAA55A"
                    android:textSize="22sp" />

并且对于登录屏幕中的1个文本,您可以在资产文件夹中使用Arial字体文件来使用Arial字体

TextView tv;
Typeface tfArial = Typeface.createFromAsset(getAssets(), "arial.ttf");
// find the textview id from layout or create dynamically
tv.setTypeface(tfArial);