在android studio中创建字体类并使用它

时间:2016-09-29 07:14:02

标签: java android android-studio

我想要创建字体类并使用它

public class Fonts extends Activity{


public static Typeface typeface;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Typeface typeface = Typeface.createFromAsset(getAssets(),"fonts/dn.ttf");



}

}

并使用它例如

      Typeface typeface = Fonts.typeface;

    Button btn_open = (Button)findViewById(R.id.bt_open);
    btn_open.setTypeface(typeface);

但它没有改变!

manifeststs中的

Fonts.java是启动器活动

我该怎么办? 谢谢

1 个答案:

答案 0 :(得分:0)

这是因为您隐藏了静态变量,在onCreate()方法中再次声明它。 您需要删除声明:

public class Fonts extends Activity {
    public static Typeface typeface;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Remove the "Typeface" declaration.
        typeface = Typeface.createFromAsset(getAssets(), "fonts/dn.ttf");
    }
}

个人建议:避免使用静态变量访问Typeface。 创建一种方法,您可以从外部传递Context以获取Typeface或在Application中初始化它。