Java LibGDX阶段-如何拉伸ImageButton?

Java LibGDX阶段-如何拉伸ImageButton?,java,libgdx,textures,Java,Libgdx,Textures,最近我们遇到了一个关于在LibGDX的stageapi中拉伸ImageButton的问题 我们有一款图形密集型游戏,可以根据您的屏幕选择纹理贴图(HDPI、MDPI或LDPI等) 我们使用480x854作为虚拟分辨率构建游戏,并在不同设备上使用视口进行良好缩放。 我们明确设置每个精灵大小,以确保无论源纹理大小如何,它都能很好地缩放 但是,有时可能会出现纹理略大于或小于其显示的实际大小的情况(例如,分辨率为320x480的图像将拾取ldpi,但图像略小于其显示的精灵) 出于某种原因,ImageBu

最近我们遇到了一个关于在LibGDX的stageapi中拉伸ImageButton的问题

我们有一款图形密集型游戏,可以根据您的屏幕选择纹理贴图(HDPI、MDPI或LDPI等)

我们使用480x854作为虚拟分辨率构建游戏,并在不同设备上使用视口进行良好缩放。 我们明确设置每个精灵大小,以确保无论源纹理大小如何,它都能很好地缩放

但是,有时可能会出现纹理略大于或小于其显示的实际大小的情况(例如,分辨率为320x480的图像将拾取ldpi,但图像略小于其显示的精灵)

出于某种原因,ImageButton不能很好地与之配合使用。 下面是我尝试的示例(在imagebutton子类中):

我试图实现的是,当我调用button.setSize(300320)时,它实际上会将图像拉伸为300x320。但是,它要么使用源图像的原始大小显示按钮(上面没有解决方法),要么使用上面的解决方法显示按钮完全清洗/拉伸(也不符合比例)

我希望有人能很好地解决这个问题,我已经在这上面敲了两天了:(

非常感谢!祝你周末愉快

更新
我现在设法正确地显示了图像按钮,但在我以前使用的面板外。在面板内,它再次显示得很奇怪。我会不断更新此按钮,当我自己找到它时,我会发布一个有效的答案。

缩放。fit
将尽可能地拉伸它,同时仍保持纵横比。此外,请尝试e> 如果外部小部件可能导致故障,则invalidateHierarchy()。
@Override
public void setSize(float w, float h) {
    super.setSize(w, h);
    if (this.getImage() != null) {
        //this.getImageCell().expand().fill();
        this.getImage().setSize(w, h);
        this.getImage().setScaling(Scaling.stretch);
        //this.getImage().invalidate();
        this.invalidate();
    }
}