resizing custom fonts

Hi,

I have a custom font, which I am sizing for my displays.  The problem is that some of the newer VENU watches have such high resolution that the font appears significantly smaller and hence less legible, than on other watches.  Is there a fix for this?  Some way that can make the font appear 60 pixels wide instead of 30, or would that involve using an entirely different font for those watches?

thanks in advance for any tips

  • Normally you'd use the bmfont tool to generate larger fonts for the devices with larger displays and then use the resource system (https://developer.garmin.com/connect-iq/core-topics/build-configuration/) to select the right font.

    If you can keep the font proportionally the same size, then you can write your display code just once and it will work for all devices you support.

  • Yes, that's the way to do it.  Just use different sized fonts for different sized displays.  Here's the basic layout for a WF that supports all the watches, and not a line of the view code needs to change - Jungles is not needed.  I have the large font for 208x208 with a height of 85, while for 390x390 at a height of 150 for example

  • Jim, that is interesting how you have organized it, if it is an effective way for supporting most products. I have in the past have had a hodge podge of selectors based often on model, and at times shape and size. If this structure largely based on screen size tends to work well it would simplify my planning of the various folders. While the docs say you can do it many ways, know what is a good and simple organization is very helpful. not sure the docs tell you that, but then it is hard to find the info you want in them docs!

  • This is they way I often do things - just using resource overrides -

    Under each resource* folder, I have a fonts folder which has my fonts.xml, and the fonts I use in the watchface (large, medium, small, icon)

  • While the docs say you can do it many ways, know what is a good and simple organization is very helpful.

    This organization is covered in the docs. It is the original system for organizing resources (before jungles, which are much more flexible).

    https://developer.garmin.com/connect-iq/core-topics/build-configuration/

  • I have a number of things I wrote pre-jungles, and while this isn't as flexible, it's a really easy way to do things like different sized fonts for different devices where you don't need the flexibility of jungles.  Also, a bit easier to support.  If a new device comes out, it could be little more than copying one of the folders and tweaking the fonts a bit. Say "resources-rectangle-300x300".  Start with round-280x280, and change the size a small amount,

  • Hi Jim, is there somewhere a list os possible ressource folders like yours?
    Or ast lease a list of a s possible syntax (resource-[round/rectangle]-[sizeX]x[sizeY])? I think there are other combinations that can be used?

    Edit. I found this old thread wihle searching for a good solution of fonz size adaption. Using your schema, I have to add new folders for every new device with different size and adapt the font to it? How do you resize your font, just a percentage set from display height?

  • I'm not sure there is a list anyplace, in fact the one I posted a couple years back has more devices now.  There I used

    resources-<shape>-<size>

    So like with the Instinct2, it was just

    resources-semioctagon-176x176

    The venu2,

    resources-round-416x416

  • Or ast lease a list of a s possible syntax (resource-[round/rectangle]-[sizeX]x[sizeY])? I think there are other combinations that can be used?

    Open {SDK_FOLDER}/bin/default.jungle and search for "family qualifier".

    e.g.

    # Set the round-260x260 family qualifier
    round-260x260 = $(round)
    round-260x260.resourcePath = $(round-260x260.resourcePath);resources-round-260x260

    EDIT: I never said that you need to include default.jungle, copy stuff from it into your own jungle, or even use any of your own jungles at all. I was simply answering the question "is there a list of all possible [resource qualifiers]". The answer is "yes, the list is in default.jungle" and "here's an example of the contents of default.jungle, for anyone who's reading this thread and doesn't want to go and open the file"

    https://developer.garmin.com/connect-iq/reference-guides/jungle-reference/

    The Default Jungle File

    The Connect IQ SDK includes a default Jungle file, which is always applied to projects even if no custom Jungle files are present. It defines a base qualifier, which represents all source files (.mc) contained in the project, and all resource files found in the resources at the root of a Connect IQ project. It also defines default device, family, and language qualifiers that are the basis for the qualifier scheme described in the previous section.

    When a project is built, the instructions from the default Jungle file are applied first, then any instructions from custom Jungle files are applied. This makes it possible for customizations to override the default build instructions.

  • Understand that for this all to work, jungles are not needed,  Works fine if you just have the resources for

    resources-round-260x260

    in a folder called resources-round-260x260 at the same level as resources