如何在不使用texturepacker的情况下向Libgdx中的文本按钮添加图像?

如何在不使用texturepacker的情况下向Libgdx中的文本按钮添加图像?,libgdx,Libgdx,您好,我正在使用libgdx开发一款Android游戏。我已经使用默认的uiskin atlas和json文件创建了主菜单按钮。问题是我不完全理解如何将按钮图像从当前默认的灰色更改为灰色。例如,我为退出按钮创建了一个退出图像,但如何将该图像添加到主菜单中的退出按钮?我已经从主精灵表中创建了退出图像的纹理区域,但找不到任何允许我将其附加到按钮的内容。谢谢 到目前为止,这是我的代码 Skin skin = new Skin(Gdx.files.internal("data/ui/uiskin.jso

您好,我正在使用libgdx开发一款Android游戏。我已经使用默认的uiskin atlas和json文件创建了主菜单按钮。问题是我不完全理解如何将按钮图像从当前默认的灰色更改为灰色。例如,我为退出按钮创建了一个退出图像,但如何将该图像添加到主菜单中的退出按钮?我已经从主精灵表中创建了退出图像的纹理区域,但找不到任何允许我将其附加到按钮的内容。谢谢

到目前为止,这是我的代码

Skin skin = new Skin(Gdx.files.internal("data/ui/uiskin.json"));

exit = new TextButton("Exit",skin);
            exit.setPosition(0,0);
            exit.setSize(60, 60);

              stage.addActor(exit);
              exit.addListener(new ClickListener() {
                  @Override
                  public void clicked(InputEvent event, float x, float y) {
                      System.exit(0);
                  }
              });

我建议在皮肤、质地和气味方面多挖一点。请参考这一点,在StackOverflow中,他们提供了关于皮肤是什么以及如何使用皮肤的一些描述

皮肤包含您可以使用的所有可绘制内容的定义,以及字体和其他内容。如果不想使用纹理打包器修改皮肤,只需修改图像文件,然后更改指定区域的JSON即可。使用纹理封隔器可以提供以下信息:

  • 将每个区域的单个图像放在单独的文件中
  • 使用正确的位置和大小信息自动创建JSON文件
  • 通过图像旋转和各种算法有效地将图像存储到PNG图像中,以减少未使用的空间
  • 可以找到更多介绍:,或此


    在默认皮肤的情况下,它被称为:uiskin.json并“指向”一个TexturePack图像uiskin.png。打开png文件时,您将找到json文件中定义的所有区域。

    非常感谢。昨晚我又看了一遍,意识到我必须创造出自己的皮肤。一开始看起来很复杂,但atlas文件基本上从png获取图像位置,json文件类似于css样式。您也可以从空文件开始,只需在开始时添加部分。此外,此链接还包含有关皮肤JSON格式的一些信息: