我正在使用libGDX 1.0而不确定它是否是一个bug。
使用TextureAtlas在LG OPtimus和HTC Desire上正确显示我的ImageButton。但是,在Galaxy Tab2上,它完全恢复,但它仍然是可点击的。
如果我从AssetsManger加载其纹理,一切都可以在任何设备上正常工作。
以下是代码的相关部分:
stage = new Stage(new StretchViewport(fontCamera.viewportWidth,fontCamera.viewportHeight));
ImageButtonStyle styleButtonPlay = new ImageButtonStyle();
//this works
//textureButtonPlay = new TextureRegion(game.manager.get("data/ui/play.png",Texture.class));
//styleButtonPlay.imageUp = new TextureRegionDrawable(textureButtonPlay);
//this don't on Samsung Tab2
atlas = new TextureAtlas("data/shot/atlas.pack");
styleButtonPlay.imageUp = new TextureRegionDrawable(atlas.findRegion("ui/play"));
buttonPlay = new ImageButton(styleButtonPlay);
buttonPlay.addListener(
new ClickListener() {
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button)
{
startGame();
return true;
}
});
buttonPlay.setSize(80, 60);
buttonPlay.setPosition(camera.viewportWidth/2 - buttonPlay.getWidth()/2,5);
stage.addActor(buttonPlay);
我现在担心把我所有的精灵都打包成单个图像。
答案 0 :(得分:1)
通过创建尺寸小于4096x4096的texturepack.png解决了该问题。 出于某种原因,它仅在某些设备上可以正常,并且在桌面上没有发现类似的问题。
希望这有助于某人...
答案 1 :(得分:0)
在此处查看您的代码:
atlas = new TextureAtlas("data/shot/atlas.pack");
style.imageUp = new TextureRegionDrawable(atlas.findRegion("ui/play"));
^^^^^
buttonPlay = new ImageButton(styleButtonPlay);
^^^^^^^^^^^^^^^
看起来你为imageButton指定了错误的样式,尝试将drawable放入正确的按钮样式(" styleButtonPlay"相反"样式"):
styleButtonPlay.imageUp = new TextureRegionDrawable(atlas.findRegion("ui/play"));