简体   繁体   中英

How do you integrate custom fonts in an app?

I am trying to integrate custom fonts (Imperator.ttf and goodfish.ttf) from the following website into my corona app:
http://www.1001freefonts.com/top-fonts.php

I am following carefully the tutorial found here on Corona's official website:
http://www.coronalabs.com/blog/2013/01/16/faq-wednesday-custom-fonts/

I follow the whole procedure for macosx integration (installing the font by double clicking etc) and do not get any error. I also added the font file name to my build.settings file:

 UIAppFonts =
 {
       "Imperator.ttf"
 },

Whenever i launch the simulator and debug the currently loaded fonts, the new one doesn't appear.

Is there an easy way to debug the issue on corona simulator, on osx, to troubleshoot why the font doesn't load ?

Thanks

While installing custom fonts to your corona application, you have to follow the following steps:

  • Install the font in your system.
  • Copy and paste the font file(such as: Imperator.ttf ) to the application folder where your main.lua exists.
  • Then for iPhone(only for iPhone, Android doesn't need this), add the following lines to your build.settings :

iphone =
    {
        plist =
        {
            UIAppFonts =
            {
                "Imperator.ttf"  -- Font file name
            },
            UIApplicationExitsOnSuspend = true
        },
    }

  • Debug and get the supported Font Names by the system using the following:

local fonts = native.getFontNames()
for i,fontname in ipairs(fonts) do
    print(fonts[i])
end

From the above debugging, you can get the exact Font Name (here: Imperator ) that you have to use while creating the text/label. Sometimes this may differ from the name of the font file. You can also get it from applications like photoshop(it's text tool font name), etc.

local myText = display.newText("Label with custom font",150,100,"Imperator",20)

Then finally, you will get the output as:

在此输入图像描述

Keep coding................ 😃

Put Imperator.ttf font file in Assets folder

In class use following code:

Typeface imperator_typeface =Typeface.createFromAsset(getContext().getAssets(),"Imperator.ttf");

your_textview.setTypeface(imperator_typeface);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM