为什么NinePatch不能在LibGDX中工作?

时间:2014-06-30 13:11:19

标签: android libgdx nine-patch

我有一个消息项的背景,我希望根据文本进行拉伸。但是当我做到这一点时:

    Drawable drawableButtonMessageUp = new TextureRegionDrawable(new TextureRegion(new Texture("data/message_my_g.9.png")));
    ButtonStyle buttonStyleMessage = new ButtonStyle();
    buttonStyleMessage.up = drawableButtonMessageUp;
    Button buttonMessage = new Button(buttonStyleMessage);
    Label labelMessage = new Label("", new LabelStyle(game.fonts[0], new Color(0, 0, 0, 1)));
    buttonMessage.add(labelMessage);  

背景不是NinePath,它像普通图片一样存在: 我的结果: enter image description here

我想要(例子): enter image description here

项目背景: enter image description here

我检查了Android SDK中的九个补丁图片,这项工作很好,我怎么能在libGDX中做到这一点?

1 个答案:

答案 0 :(得分:2)

这是因为你没有使用NinePatch,你正在使用TextureRegion

您可能想要更改行

Drawable drawableButtonMessageUp = new TextureRegionDrawable(new TextureRegion(new Texture("data/message_my_g.9.png")));

类似

Drawable drawableButtonMessageUp = new NinePatchDrawable(new NinePatch(new Texture("data/message_my_g.9.png"), 1, 1, 1, 1));

注意数字" 1"这是一个占位符。您可能需要使用这些数字才能使九点看起来正确。

有关详细信息,请查看文档,尤其是instantiating ninepatches

部分