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

后端 未结 5 1107
忘掉有多难
忘掉有多难 2020-12-19 04:06

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:



        
相关标签:
5条回答
  • 2020-12-19 04:09

    I resolved the problem by converting my file.ttf to 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);
    

    FYI : the .otf format work for all android version (not only on kitkat)

    0 讨论(0)
  • 2020-12-19 04:10

    After many hours searching for roboto.otf (2014 year) I understood that it was a mistake. Simply download a normal ttf font from https://www.fontsquirrel.com/fonts/roboto-2014 and copy to assets folder, then use setTypeface. Also you may convert it to otf with any web-site.

    0 讨论(0)
  • 2020-12-19 04:13

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

    0 讨论(0)
  • 2020-12-19 04:20

    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.

    0 讨论(0)
  • 2020-12-19 04:31

    Put your custom font in android assets under folder name "font" or whatever you want

    Try this

    myTypeface = Typeface.createFromAsset(this.getAssets(),
                "fonts/<<your font>>.ttf");
    

    in onCreate() then

    [use youcontroll].setTypeface(myTypeface);
    

    Best of Luck...

    0 讨论(0)
提交回复
热议问题