java - 将 FreeType 字体传递给 LibGDX 中的 Assets 加载器

标签 java android fonts libgdx

我正在尝试在我的初始屏幕上预加载大量 TTF 和 OFT 字体,该屏幕还实现了带有纹理的加载栏。

我的想法是,我预加载一组具有设定大小的字体,然后字体管理器在准备好使用时检索字体。

我找到了以下类 https://github.com/libgdx/libgdx/blob/master/extensions/gdx-freetype/src/com/badlogic/gdx/graphics/g2d/freetype/FreetypeFontLoader.java

但是在任何地方都没有关于如何使用它的文档。

我试试下面的代码:

parameter.size = (int)Math.ceil(fontStorage.fontSize);
    FreetypeFontLoader.FreeTypeFontLoaderParameter freeTypeParams = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
    freeTypeParams.fontParameters = parameter;
    freeTypeParams.fontFileName = fontStorage.fontFile;

    GameAssetLoader.getInstance().getAssetManager().load(
            fontStorage.fontFile,
            FreetypeFontLoader.class,
            (AssetLoaderParameters)freeTypeParams
    );

我收到以下错误:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: No loader for type: FreetypeFontLoader

最佳答案

您需要先在 AssetManager 上设置加载器。参见 this test一个工作示例。

// set the loaders for the generator and the fonts themselves
FileHandleResolver resolver = new InternalFileHandleResolver();
GameAssetLoader.getInstance().getAssetManager().setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
GameAssetLoader.getInstance().getAssetManager().setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));

关于java - 将 FreeType 字体传递给 LibGDX 中的 Assets 加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24925940/

相关文章:

java - PlayN - iOS 和 Android 上的虚拟键盘

opengl - 渲染字体时使用texelFetch是不是更快?

java - Resolving model jre :call:zip:1. 0.0 的目的是什么?

java - 如何保存和编码带有特殊字符的xml字符串?

java - 单元缓存映射加载失败 - GWT

android - 在android studio中无限安装

android - 流量计 |多个发件人 ID

java - gRPC-java - .proto 文件的编译

css - 使用已安装的字体在本地将字体嵌入到 Flex CSS 中是可行的,但使用 url 来引用 ttf 字体文件则不行

Android 应用程序布局被大文本破坏