在皮肤json文件中指定TextButton填充?

时间:2015-03-03 16:41:10

标签: libgdx

我有一个典型的皮肤json文件,就像这里的示例一样:

https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests-android/assets/data/uiskin.json

是否可以在皮肤文件中为文本按钮(文本周围的空格到按钮边缘)指定“内部”填充 - 或者我们只能在运行时以编程方式执行此操作?

由于

3 个答案:

答案 0 :(得分:2)

scene2d中的按钮使用背景drawable来确定填充。据我所知,设置Button按钮的唯一三种可靠方法是

  1. 使用9补丁drawable作为背景drawable。 9补丁定义了自己的填充。

  2. 使用其setTopHeight()setLeftWidth()等方法以编程方式修改任何Drawable以进行填充。然后以编程方式将此Drawable应用为Button的背景。

  3. 编辑:从LibGDX 1.7.2开始,现在可以通过在JSON文件中指定TextureRegionDrawable来实现。使用TextureRegionDrawable作为按钮的背景并定义其填充,如下所示:

    com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable: { paddedWhite: { region: white, leftWidth: 5, rightWidth: 5, topHeight: 4, bottomHeight: 4 } }

  4. 请注意,如果您只是使用button.pad(...),则在第一次按下按钮时,您的填充设置将被取消。

答案 1 :(得分:0)

与.json文件一起,您还应该有一个.atlas文件 在.atlas文件中,您可以定义按钮

你的.atlas文件中的

Button.png
size: 70,10
format: RGBA8888
filter: Linear,Linear
repeat: none
Button1
  rotate: false
  xy: 0, 0
  size: 30, 30
  orig: 30, 30
  offset: 0, 0
  index: -1

所以,如果您的按钮尺寸是30,30 然后,如果你想让你的按钮在x轴上略大一点,那么你的原点是20,30

希望你喜欢这个答案

如果您需要更多帮助,请访问 here或者找到更多自己的例子

答案 2 :(得分:0)

如果你想从表格中的代码进行填充。

这是wiki表中的一个例子:

<强>填充

填充是单元格边缘周围的额外空间。

table.add(nameLabel);
table.add(nameText).width(100).padBottom(10); // Sets bottom padding.
table.row();
table.add(addressLabel);
table.add(addressText).width(100).pad(10);    // Sets top, left, bottom, right padding. 
看看这个:

  1. https://github.com/libgdx/libgdx/wiki/Table
  2. https://github.com/EsotericSoftware/tablelayout