我有一个典型的皮肤json文件,就像这里的示例一样:
https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests-android/assets/data/uiskin.json
是否可以在皮肤文件中为文本按钮(文本周围的空格到按钮边缘)指定“内部”填充 - 或者我们只能在运行时以编程方式执行此操作?
由于
答案 0 :(得分:2)
scene2d中的按钮使用背景drawable来确定填充。据我所知,设置Button按钮的唯一三种可靠方法是
使用9补丁drawable作为背景drawable。 9补丁定义了自己的填充。
使用其setTopHeight()
,setLeftWidth()
等方法以编程方式修改任何Drawable以进行填充。然后以编程方式将此Drawable应用为Button的背景。
编辑:从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 }
}
请注意,如果您只是使用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.
看看这个: