0
我想在我的Android应用程序中使用自定义字体。我跟着指示和创建Android Studio中的assets
文件夹中,我把verdana.ttf
,在图中显示:从Android Studio中的资产加载字体时出现NullPointerException
然后我所说的,我MainActivity
活动如下:
public class MainActivity extends ActionBarActivity {
Typeface mainFont = Typeface.createFromAsset(getAssets(), "verdana.ttf");
的代码编译,但是当活动启动时,我在上面的行上得到了一个NullPointerException
。我怀疑verdana.ttf
文件可能已损坏,但尝试使用不同字体时错误仍然存在。清理项目也无济于事。资产文件夹是否位于错误的位置?我可能会做错什么?
谢谢,它的工作原理就是这样!但在我的代码构造下,我需要在'onCreateView'方法的静态类中调用'createFromAsset()'。所以在'super.onCreate()'调用之后,我尝试了'Typeface.createFromAsset(getActivity()。getAssets(),“verdana.ttf”)',并且在这里我得到一个'NullPointerException'。有没有解决这个问题(或者我应该把它作为一个新问题吗?)。 – Sid 2014-08-31 15:59:43
@Sid:“但是在我的代码构造中,我需要在onCreateView方法的静态类中调用createFromAsset()onCreateView()可以调用getActivity()来获取有效的Context。 。将这个'Context'传递给一个静态方法,它懒化地初始化你的'Typeface'。 “有没有解决方案(或者我应该把它作为一个新问题发布?)” - 我不明白你的评论的其余部分,所以如果我在这里给出的建议不够充分,你可能需要提出一个新问题包括完整的堆栈跟踪和源代码。 – CommonsWare 2014-08-31 16:03:42
它的工作。非常感谢。 – Sid 2014-08-31 16:10:06