Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom ttf fonts are not showing properly in TextView on Android 4.4 KitKat

I have some text which has some bolded parts. Until KitKat this strategy (as mentioned in this post) worked perfectly well

My strings resources file:

<string name="multi_style_text">NON-BOLD TEXT \n<b>BOLD</b></string>

My application code in fragment:

txtView.setTypeface(FontUtils.getOstrichRegular(this.getActivity()));
...
public static Typeface getOstrichRegular(Context context) {
   return Typeface.createFromAsset(context.getAssets(),
                                "fonts/ostrich_regular.ttf");
}

Currently (in KitKat), the bolded part is not shown in the custom font, the non-bolded part is shown in the custom font. In previous versions of Android, all of the text was shown in the custom font.

What gives?

like image 654
Kaushik Gopal Avatar asked Nov 20 '13 21:11

Kaushik Gopal


2 Answers

So, after being frustrated by this bug, I searched around and found a solution to the problem. In my current project we use calibri.ttf font. that was working fine up to 4.4. Once i got the update to my nexus 4, All the TextViews with Calibri font were showing "ff" instead of the entire text.

THE FIX - get an .otf (open type font) version of your font, and put in the project, works like a charm. Too bad google didn't inform the developers on this and there's very little documentation on the matter.

like image 50
Israel Tabadi Avatar answered Oct 17 '22 05:10

Israel Tabadi


Apparently this is a bug in KitKat and has been fixed in an internal tree.

like image 2
Kaushik Gopal Avatar answered Oct 17 '22 06:10

Kaushik Gopal