Android 在按下后退按钮并继续后,我的游戏会出现黑屏
我正在使用LibGDX创建一个游戏。我已经实现了AssetManager来加载所有的资产,并且我还创建了一个GameSking类,它向皮肤添加了许多按钮样式和类似的东西,这样我就不必手动执行。这是:Android 在按下后退按钮并继续后,我的游戏会出现黑屏,android,libgdx,dispose,Android,Libgdx,Dispose,我正在使用LibGDX创建一个游戏。我已经实现了AssetManager来加载所有的资产,并且我还创建了一个GameSking类,它向皮肤添加了许多按钮样式和类似的东西,这样我就不必手动执行。这是: public class GameSkin extends Skin { private static final AssetManager ASSET_MANAGER = Assets.getAssetManager(); private TextureAtlas atlas; private
public class GameSkin extends Skin {
private static final AssetManager ASSET_MANAGER = Assets.getAssetManager();
private TextureAtlas atlas;
private FreeTypeFontGenerator generator;
private FreeTypeFontGenerator.FreeTypeFontParameter parameter;
private BitmapFont defaultFont;
private TextButton.TextButtonStyle redButtonStyle, orangeButtonStyle, greenButtonStyle, blueButtonStyle, defaultButtonStyle;
private Label.LabelStyle labelStyle;
private Window.WindowStyle windowStyle, firstTimeWindowStyle;
public GameSkin() {
Assets.load();
ASSET_MANAGER.finishLoading();
atlas = ASSET_MANAGER.get("uiskin.atlas");
addRegions(atlas);
generator = new FreeTypeFontGenerator(Gdx.files.internal("font/komika.ttf"));
parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 100;
defaultFont = generator.generateFont(parameter);
generator.dispose();
defaultButtonStyle = new TextButton.TextButtonStyle();
redButtonStyle = new TextButton.TextButtonStyle();
orangeButtonStyle = new TextButton.TextButtonStyle();
greenButtonStyle = new TextButton.TextButtonStyle();
blueButtonStyle = new TextButton.TextButtonStyle();
redButtonStyle.font = defaultFont;
redButtonStyle.up = getDrawable("rbup");
redButtonStyle.down = getDrawable("rbdown");
orangeButtonStyle.font = defaultFont;
orangeButtonStyle.up = getDrawable("obup");
orangeButtonStyle.down = getDrawable("obdown");
greenButtonStyle.font = defaultFont;
greenButtonStyle.up = getDrawable("gbup");
greenButtonStyle.down = getDrawable("gbdown");
blueButtonStyle.font = defaultFont;
blueButtonStyle.up = getDrawable("bbup");
blueButtonStyle.down = getDrawable("bbdown");
defaultButtonStyle.font = defaultFont;
defaultButtonStyle.up = getDrawable("obup");
defaultButtonStyle.down = getDrawable("obdown");
labelStyle = new Label.LabelStyle(defaultFont, Color.WHITE);
windowStyle = new Window.WindowStyle(defaultFont, Color.WHITE, getDrawable("GT"));
firstTimeWindowStyle = new Window.WindowStyle(defaultFont, Color.WHITE, getDrawable("guide"));
add("default-font", defaultFont);
add("red-button", redButtonStyle);
add("orange-button", orangeButtonStyle);
add("green-button", greenButtonStyle);
add("blue-button", blueButtonStyle);
add("default", defaultButtonStyle);
add("default", labelStyle);
add("default", windowStyle);
add("first-time", firstTimeWindowStyle);
}
@Override
public void dispose() {
super.dispose();
}
}
以下是欢迎屏幕的外观:
这是我按下后退按钮退出,然后点击应用程序继续后发生的情况:
除了我在按钮上使用的位图字体之外,似乎所有的东西都被处理掉了,但我不明白这有什么问题。有人可以帮忙吗?您的代码几乎完成了,这需要在您的AndroidLauncher重新加载简历中的资产:
@Override
protected void onResume() {
Assets.unload();
Assets.load();
ASSET_MANAGER.finishLoading();
super.onResume();
}
不要对资源或纹理使用静态引用。我用了它,它成功了。谢谢每次用户任务切换回应用程序而不关闭活动时,这将导致不必要的重新加载。确实,请注意,这一切都是在调用resume方法之前发生的。我停止使用静态变量,现在它可以工作了。