我想做的事:

    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并将其用作原点。

07-24 21:49