2017-04-17 74 views
-1

我創建了一個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

+0

創建自定義類擴展Button類,然後用它來處理XML創建按鈕,而不是默認

+0

看這個答案http://stackoverflow.com/a/16648457/7267105 –

+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" /> 
相關問題