Libgdx Scene2d.ui窗口的顶色?

Libgdx Scene2d.ui窗口的顶色?,libgdx,Libgdx,我想在libgdx中创建一个UI窗口,其中顶部(包含标题并允许您拖动窗口的部分)具有与窗口其余部分不同的背景色。我只能为整个窗口设置背景色,是否可以仅为顶部部分更改背景色 迄今为止的代码: WindowStyle windowStyle = new WindowStyle(new BitmapFont(), Color.WHITE, skin.newDrawable("white", Color.BLACK)); Window window = new Window("test

我想在libgdx中创建一个UI窗口,其中顶部(包含标题并允许您拖动窗口的部分)具有与窗口其余部分不同的背景色。我只能为整个窗口设置背景色,是否可以仅为顶部部分更改背景色

迄今为止的代码:

    WindowStyle windowStyle = new WindowStyle(new BitmapFont(), Color.WHITE, skin.newDrawable("white", Color.BLACK));

    Window window = new Window("test", windowStyle);
    window.setMovable(true);
    window.padTop(20);

    stage.addActor(window);
    window.setPosition(100, 100);
    window.setSize(500, 300);

libgdx中UI窗口的顶部栏使用与整个窗口相同的纹理。要更改顶栏的颜色,需要修改基础纹理文件。libgdx将其视为一个整体,没有内置的方法为窗口的每个组件指定单独的颜色


还有其他方法,但它们并不简单,需要编写您自己的小部件类来复制内置窗口类的大部分行为。

窗口被视为一个单独的九匹配。您可以直接更改纹理,但在运行时使用两种不同的颜色需要您自己的窗口小部件。@Jyro117谢谢您提供的信息。我不太熟悉九匹战车。如果直接更改纹理,您的意思是我将在它所基于的图像文件中包含顶色?没错,您只需更改图像文件即可。Ninepatch只是一个纹理的名称,你可以将它分成9个子部分,然后拉伸它们以适合你想要的任何形状。@Jyro117好的,谢谢,我相信这是一种方法。如果你愿意,把你的评论作为回答,我会接受的。