Android Studio – 使用片段中的资产管理器设置自定义字体
作者:互联网
我正在改写我的一个项目,将片段用于平板电脑.我还决定开始使用Android Studio进行转换.非常简单,但我遇到了一个关于设置自定义字体这个非常简单的任务的问题.
我从这些开始:
Custom fonts in android和
List of files in assets folder and its subfolders和Set custom font for Android fragments
在Eclipse中,我的类扩展了Activity,我在OnCreate中执行了以下操作,没有任何问题.(有一个目录和文件“assets / FUT_R.ttf”)
TextView tv=(TextView)findViewById(R.id.someTextView);
Typeface font = Typeface.createFromAsset(getAssets(), "FUT_R.ttf");
tv.setTypeface(font);
现在尝试将此Activity转换为ActionBarActivity(带有V7支持库的片段),我已将上述代码更改为此. (其中视图是带有一个Framelayout的手机充气布局)
TextView tv=(TextView) view.findViewById(R.id.someTextView);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "FUT_R.ttf");
tv.setTypeface(font);
并且它在运行时崩溃并带有可爱的java.lang.RuntimeException:虽然我在我的新项目中创建了’assets’目录并且在其根目录中使用了FUT_R.ttf,因此无法创建本机字体.
要确认资产管理器,我尝试了以下代码:
String[] f = null;
try {
f = getActivity().getAssets().list("");
}
catch (IOException e){
e.printStackTrace();
}
for(String f1:f){
Log.i("names",f1);
}
得到以下输出:
07-26 07:40:40.134 2114-2114/com.myapp I/names: images
07-26 07:40:40.134 2114-2114/com.myapp I/names: sounds
07-26 07:40:40.134 2114-2114/com.myapp I/names: webkit
我很困惑,因为我的’assets’目录或项目中没有这些文件和/或目录.显然错误是系统找不到我的字体文件.我究竟做错了什么?任何方向都会受到高度赞赏,我在这个愚蠢的问题上浪费了太多时间.
谢谢!
解决方法:
我终于偶然发现了这个:Load a simple text file in Android Studio
它指出Android Studio中的assets文件夹显然已被更改.它不需要在根应用程序文件夹中的正常位置(与libs,src,ect相同),而是需要在yourapp / src / main / assets下创建.希望这有助于其他人.我浪费了很多时间!
标签:android,fonts,android-fragments,asset-management 来源: https://codeday.me/bug/20190714/1460331.html