为导航视图标题设置自定义字体

时间:2017-04-17 10:34:34

标签: java android android-layout android-studio

我创建了一个android studio默认导航视图,我在nav_header_main.xml中放了两个按钮(见下图) 现在我想为按钮设置自定义字体。 我在MainActivity.java中试过这个:

 Typeface font = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
    Button b = (Button) findViewById(R.id.login_btn);
    b.setTypeface(font);

但它不起作用!! 我怎么能这样做?

Screenshot

1 个答案:

答案 0 :(得分:0)

您必须编写一个从按钮扩展的自定义类。

以下是一个例子:

package com.example.test;

import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.Button;
import android.widget.TextView;

public class CustomFontButton extends Button {

    public CustomFontButton(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public CustomFontButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomFontButton(Context context) {
        super(context);
        init();
    }

    private void init() {
        Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/myfont.ttf");
        setTypeface(font);
    }

}

从XML使用它:

<com.example.test.CustomFontButton
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"  
   android:text="Button Text" />