我想要创建字体类并使用它
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是启动器活动
我该怎么办? 谢谢
答案 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
中初始化它。