下面的图像需要垂直拉伸到灰色区域上方。图像的其余部分应该水平展开,以便填满屏幕。
所以我将ninepatch设置为0, 0, 158, 28
(a, b, c, d)。当我将其用作Table
背景时,这就是结果。
在我看来,图像“正好”填满了屏幕并完全忽略了九个分割。
我的世界大小是140宽和250高atm。图像宽733。这可能是问题吗?我从未在小图片上遇到过九点问题。
这是我设置图像的方式:
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
中使用它,但我得到了相同的结果。现在我想知道是否有可能做我想做的事情,也许我需要从图像的其余部分拆分横幅。但是这两个图像应该完美排列。
答案 0 :(得分:1)
这是我用于九个补丁的方法,它对我有用。我没有"分裂"在我的地图集中,你可能不需要使用它。
TextureRegion region = skin.getRegion("winpanel");
NinePatch patch = new NinePatch(region, 0, 0, 158, 28);
NinePatchDrawable drawable = new NinePatchDrawable(patch);
winTable.setBackground(drawable);
编辑: 我刚刚注意到你提到你的世界大小是140宽,图像是733宽...这很可能是你的问题,因为它正在挤压适合您桌子的图像宽度。在照片编辑器中打开图像并缩放图像,使其宽度与您希望它在游戏中显示的宽度完全相同。然后尝试使用新图像大小的新值的九个补丁,看看它是否有效。