大型九爪伸展

时间:2015-11-23 10:16:04

标签: java android libgdx nine-patch

下面的图像需要垂直拉伸到灰色区域上方。图像的其余部分应该水平展开,以便填满屏幕。

enter image description here

所以我将ninepatch设置为0, 0, 158, 28 (a, b, c, d)。当我将其用作Table背景时,这就是结果。

enter image description here

在我看来,图像“正好”填满了屏幕并完全忽略了九个分割。

我的世界大小是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中使用它,但我得到了相同的结果。现在我想知道是否有可能做我想做的事情,也许我需要从图像的其余部分拆分横幅。但是这两个图像应该完美排列。

1 个答案:

答案 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宽...这很可能是你的问题,因为它正在挤压适合您桌子的图像宽度。在照片编辑器中打开图像并缩放图像,使其宽度与您希望它在游戏中显示的宽度完全相同。然后尝试使用新图像大小的新值的九个补丁,看看它是否有效。