Libgdx Freetype字体生成器大纲表现得很奇怪

时间:2016-04-21 14:48:26

标签: android libgdx freetype

我使用资产管理器使用object生成我的字体 FreeTypeFontGeneratorLoader,特别是我使用当前参数

FreeTypeFontLoaderParameter parameter = new FreeTypeFontLoaderParameter();
parameter.fontFileName = "fonts/myFont.ttf";
parameter.fontParameters.size = size;
parameter.fontParameters.minFilter = Texture.TextureFilter.Linear;
parameter.fontParameters.magFilter = Texture.TextureFilter.Linear;
if(withStroke) {
    parameter.fontParameters.borderStraight = true;
    parameter.fontParameters.borderColor = Color.BLACK;
    parameter.fontParameters.borderWidth = 1.5f;
}
parameter.fontParameters.color = Assets.fontColor;

(然后我在Assets类的静态变量中加载我的字体)

如果应用程序第一次运行,一切正常, 这是带有大纲截图的生成文本:

screenshot

但在使用此行关闭我的应用后

Gdx.app.exit();

然后再次打开我的应用程序,轮廓现在开始表现得很奇怪 这是奇怪的生成字体的屏幕截图:

screenshot

我已经尝试在Gdx中处理ApplicationListener时处理我的资产管理器,但有时我的字体仍然很奇怪。

如果我在所有任务android中清除我的处理运行,则字体再次正常。

你能告诉我为什么会发生这种情况的可能解决方案,你有什么建议吗? THX

2 个答案:

答案 0 :(得分:0)

即使应用程序丢失了上下文,Android有时也会保留静态(最终)变量。

使用静态变量时:请确保在需要时进行处理,然后将其设置为null。或者不要将静态用于资产。

答案 1 :(得分:0)

因为这个问题发生是因为我的应用程序没有完全关闭,因为这一行:

@ViewChildren()

就是这样做的:

  

安排退出申请。在android上,这将导致在将来的某个时间调用pause()和dispose(),它不会立即完成你的应用程序“

这就是为什么我改变了使用这一行来关闭我的应用程序的原因:

Gdx.app.exit();

然后我的应用正在加载并在用户再次打开我的应用时生成新字体。