我使用资产管理器使用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类的静态变量中加载我的字体)
如果应用程序第一次运行,一切正常, 这是带有大纲截图的生成文本:
但在使用此行关闭我的应用后
Gdx.app.exit();
然后再次打开我的应用程序,轮廓现在开始表现得很奇怪 这是奇怪的生成字体的屏幕截图:
我已经尝试在Gdx中处理ApplicationListener时处理我的资产管理器,但有时我的字体仍然很奇怪。
如果我在所有任务android中清除我的处理运行,则字体再次正常。
你能告诉我为什么会发生这种情况的可能解决方案,你有什么建议吗? THX
答案 0 :(得分:0)
即使应用程序丢失了上下文,Android有时也会保留静态(最终)变量。
使用静态变量时:请确保在需要时进行处理,然后将其设置为null。或者不要将静态用于资产。
答案 1 :(得分:0)
因为这个问题发生是因为我的应用程序没有完全关闭,因为这一行:
@ViewChildren()
就是这样做的:
安排退出申请。在android上,这将导致在将来的某个时间调用pause()和dispose(),它不会立即完成你的应用程序“
这就是为什么我改变了使用这一行来关闭我的应用程序的原因:
Gdx.app.exit();
然后我的应用正在加载并在用户再次打开我的应用时生成新字体。