我想做的事:
final ImageButtonStyle upStyle = new ImageButtonStyle();
upStyle.up = spriteUp;
upStyle.down = spriteDown;
upStyle.imageUp = spriteIcon;
imgButton = new ImageButton(upStyle);
imgButton.getImage().setScale(0.5f);
但是,这将产生以下结果:
这就是我要的:
为了立即实现此目的,我必须调用以下代码:
float scale = 0.5f;
imgButton.pack();
imgButton.getImage().setOrigin(imgButton.getImage().getWidth() * scale, imgButton.getImage().getHeight() * scale);
我尝试过的事情没有结果(没有特定的顺序):
imgButton.getImage().setAlign(Align.center);
imgButton.invalidate();
imgButton.pack();
imgButton.getImageCell().align(Align.center);
有什么想法,也许是关于单元格属性的一些想法?除非我手动更改Origin并重新包装,否则似乎什么都没有改变。
谢谢!
最佳答案
尝试
imgButton.getImage().setOrigin(Align.center);
imgButton.getImage().setScale(0.5f);
LibGDX可以使用Align.center来指定中心,而不是使用技巧宽度width和height * 0.5f并将其用作原点。