下图需要在灰色区域上垂直拉伸。图像的其余部分应在水平方向上均等扩展,以使其充满屏幕。
因此,我将ninepatch设置为0, 0, 158, 28
(a, b, c, d)。当我将其用作Table
背景时,就是结果。
在我看来,图像只是“填满”整个屏幕,而完全忽略了ninepatch拆分。
我的世界大小是140宽,250高大气压。图像是733宽。这可能是问题吗?我从来没有在小图像上使用ninepatch问题。
这是我设置图像的方式:
winTable = new Table(skin);
winTable.background("winpanel");
winTable.setFillParent(true);
stage.addActor(winTable);
//And this is how the image in the atlas is specified
winpanel
rotate: false
xy: 0, 298
size: 733, 203
split: 0, 0, 158, 28
orig: 733, 203
offset: 0, 0
index: -1
我尝试使用数字获得成功,但没有成功。我也尝试手动创建一个
NinePatch
,并在Image
中使用它,但是得到的结果相同。现在,我想知道是否有可能做我想做的事情,也许我需要将横幅与其余图像分开。但是,这两个图像应该完美对齐。 最佳答案
这是我用于ninepatches的方法,对我有用。我的地图集中没有“ split”行,因此您可能不需要在其中使用它。
TextureRegion region = skin.getRegion("winpanel");
NinePatch patch = new NinePatch(region, 0, 0, 158, 28);
NinePatchDrawable drawable = new NinePatchDrawable(patch);
winTable.setBackground(drawable);
编辑:我刚刚注意到您提到您的世界大小为140宽,图像为733宽...这很可能是您的问题,因为它会挤压图像的宽度以适合您的桌子。在照片编辑器中打开图像并缩放图像,以使其宽度与您希望它出现在游戏中的宽度完全相同。然后尝试使用带有新值的ninepatch来设置新图像的大小,然后查看是否可行。
关于java - 大号九片拉伸(stretch),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33868458/