我有一个从Pixmap构建的com.badlogic.gdx.scenes.scene2d.ui.Image.Pixmap只有一个像素,因为我用它来构建一个可以淡入淡出的背景图像.
Pixmap pmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
pmap.setColor(1.0f, 1.0f, 1.0f, 1.0f);
pmap.drawPixel(0, 0);
bgImage = new Image(new Texture(pmap));
pmap.dispose();
bgImage.setSize(MyGame.VIRUAL_WIDTH, MyGame.VIRUAL_HEIGHT);
bgImage.getColor().a = 0.0f;
bgImage.addAction(Actions.sequence(Actions.fadeIn(1.0f),Actions.delay(3.0f),Actions.fadeOut(1.0f)));
stage.addActor(bgImage);
Run Code Online (Sandbox Code Playgroud)
它运作得很好,但我担心的是游戏可能会在行动发生时暂停.我假设操作将在恢复时继续,因此我需要保持相同的Image但基础Pixmap不受管理,因此需要在恢复时重新创建.我无法弄清楚如何将纹理/ Pixmap重新附加到图像上.构建Pixmap本身很容易,但是让现有的Image使用它是个问题.
我的解决方案如下
假设Pixmap pixmap = ...
TextureData texData = new PixmapTextureData(pixmap, Format.RGBA8888, false, false, true);
Texture texture = new Texture(texData);
Image image = new Image(texture);
Run Code Online (Sandbox Code Playgroud)
PixmapTextureData中的最后一个标志是"托管".它运行在我的.
您可以查看以下链接的第一部分,了解管理的内容和不管理的内容.http://www.badlogicgames.com/wordpress/?p=1513