LibGDX阶段 - 如何拉伸ImageButton?

时间:2015-02-20 22:15:37

标签: java libgdx textures

最近我们遇到了关于在LibGDX的Stage API中拉伸ImageButton的问题。

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

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

然而,有时可能会发生纹理略大于或小于显示的实际尺寸(例如,320x480的分辨率将选择ldpi,但图像略小于它显示的精灵)上)

出于某种原因,ImageButton无法很好地工作。 这是我尝试的一个例子(在一个imagebutton子类中):

@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();
    }
}

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

我希望有人可能会对此有一个很好的解决方法,我现在已经在这个问题上敲了两天:(

非常感谢!祝周末愉快!

更新 我设法现在正确地显示图像按钮,但在我曾经使用的面板之外。在面板内部它再次显示出奇怪的效果。我会保持最新状态,当我自己找到它时,我会发布一个有效的答案。

0 个答案:

没有答案