我有一些文字有一些粗体部分。直到KitKat这个策略(as mentioned in this post)运作得非常好
我的字符串资源文件:
<string name="multi_style_text">NON-BOLD TEXT \n<b>BOLD</b></string>
片段中的我的应用程序代码:
txtView.setTypeface(FontUtils.getOstrichRegular(this.getActivity()));
...
public static Typeface getOstrichRegular(Context context) {
return Typeface.createFromAsset(context.getAssets(),
"fonts/ostrich_regular.ttf");
}
目前(在KitKat中),粗体部分未显示在自定义字体中,非粗体部分显示在自定义字体中。在以前的Android版本中,所有文本都以自定义字体显示。
是什么给出了?
答案 0 :(得分:22)
所以,在被这个bug感到沮丧之后,我四处搜索并找到了问题的解决方案。 在我目前的项目中,我们使用calibri.ttf字体。这工作正常,达到4.4。一旦我得到了我的nexus 4的更新,所有带Calibri字体的TextViews都显示“ff”而不是整个文本。
THE FIX - 获取字体的.otf(开放式字体)版本,并放入项目,就像一个魅力。太糟糕的谷歌并没有告知开发人员这方面的事情,而且关于此事的文件很少。
答案 1 :(得分:2)
答案 2 :(得分:0)
将自定义字体放在文件夹名称“font”或任何您想要的
下的android资源中试试这个
myTypeface = Typeface.createFromAsset(this.getAssets(),
"fonts/<<your font>>.ttf");
在onCreate()
然后
[use youcontroll].setTypeface(myTypeface);
最好的运气......
答案 3 :(得分:0)
我通过将file.ttf转换为file.otf
解决了这个问题remplace:
Typeface typeface = Typeface.createFromAsset(activity.getAssets(), "fonts/ostrich_regular.ttf");
yourTextView.setTypeface(typeface);
by:
Typeface typeface = Typeface.createFromAsset(activity.getAssets(), "fonts/ostrich_regular.otf");
yourTextView.setTypeface(typeface);
仅供参考:.otf格式适用于所有Android版本(不仅仅适用于kitkat)
答案 4 :(得分:0)
经过几个小时搜索roboto.otf(2014年),我明白这是一个错误。只需从https://www.fontsquirrel.com/fonts/roboto-2014下载普通的ttf字体并复制到assets文件夹,然后使用setTypeface。 您也可以使用任何网站将其转换为otf。