Here you can read about how to supply your own AssetLoader .
You will have to implement either SynchronousAssetLoader or AsynchronousAssetLoader . Those would get the file to a free type font. With this, you can use the generator to generate the desired BitmapFont . Since you want to use the asset manager, you must overwrite the default bootloader for bitmap fonts, for example:
manager.setLoader(BitmapFont.class, new MyFreeTypeFontLoader(new InternalFileHandleResolver()));
Through AssetLoaderParameters you can provide additional information to your loader, for example, font size.
The following code has not been verified, but may work:
public class FreeTypeFontLoader extends SynchronousAssetLoader<BitmapFont, FreeTypeFontLoader.FreeTypeFontParameters> { public FreeTypeFontLoader(FileHandleResolver resolver) { super(resolver); } @Override public BitmapFont load(AssetManager assetManager, String fileName, FileHandle file, FreeTypeFontParameters parameter) { FreeTypeFontGenerator generator = new FreeTypeFontGenerator(file); return generator.generateFont(parameter.fontParameters); } static public class FreeTypeFontParameters extends AssetLoaderParameters<BitmapFont> { public FreeTypeFontParameter fontParameters; } @Override public Array<AssetDescriptor> getDependencies(String fileName, FileHandle file, FreeTypeFontParameters parameter) { return null; } }
UPDATE:
This is no longer necessary, the gdx-freetype extension now has downloaders for the freetype fonts themselves!
source share