gpt4 book ai didi

java - Android 应用程序的自定义字体

转载 作者:行者123 更新时间:2023-11-29 19:33:39 26 4
gpt4 key购买 nike

我试图在我的应用程序中添加自定义字体。创建 typeface 对象并将字体放入其中的方法有效。现在我想为自定义字体创建一个类以获得更清晰的代码。

CustomFont.java

public class CustomFont extends AppCompatActivity {

private final Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Slabo.ttf");

public CustomFont(TextView textView) {
textView.setTypeface(typeface);
}
}

现在我正尝试将此字体添加到 textview:

    public class MainActivity extends AppCompatActivity {

private Typeface typeface;
private CustomFont customFont;
private TextView textview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//typeface = Typeface.createFromAsset(getAssets(), "fonts/Slabo.ttf"); // works
textview = (TextView) findViewById(R.id.textviewTest);
//textview.setTypeface(typeface); // works

customFont = new CustomFont(textview); // does not work

}
}

但是如果我运行这个项目,我会得到这个异常:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.AssetManager android.content.Context.getAssets()' on a null object reference

最佳答案

试试这个:

TextView text = (TextView) findViewById(R.id.custom_font);
Typeface font = Typeface.createFromAsset(getAssets(), "yourfont.ttf");
text.setTypeface(font);

关于java - Android 应用程序的自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39531157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com