Libgdx ImageButton 填充?
Libgdx ImageButton padding?
所以我在使用 libgdx 的 ImageButton class 时遇到了这个问题,问题是在 android 中图像没有扩展到按钮的完整大小,在桌面上它做或至少做更多,所以我不得不问是否有办法强制图像获得背景(按钮)的大小?所以我可以尝试在两个平台上进行平等的可视化。
这是一个屏幕截图,后退 space 按钮是 ImageButton...
编辑:这是代码....
private void createButtons() {
ImageButtonStyle ibs = new ImageButtonStyle(buttonD,buttonD_p,buttonD,bsIcon,bsIcon,bsIcon);
buttonBS = new ImageButton(ibs); // This is the backspace button
....
}
private void addButtonsToTable() {
float pad = 1;
float BUTTON_SIZE = this.BUTTON_SIZE - pad *3;
table.top();
table.center();
table.add(buttonBS).width(BUTTON_SIZE).height(BUTTON_SIZE).pad(pad);
table.row();
...
}
如果您希望图像成为 背景 而不仅仅是图标,您应该考虑使用纯 Button
或 TextButton
而不是 ImageButton
。 ImageButton
应仅用于在其背景上另外 绘制图标的按钮。 ImageButton
用法的示例可以是带有 "X"(十字)图像的 window 关闭按钮,或带有扬声器图标的音乐切换按钮。
当您需要图像填充整个按钮区域时,将其设置为ButtonStyle#up
- 它会成为按钮的背景。 ImageButton#imageUp
只是一个不会以任何方式缩放的图标(默认情况下),因此这可能是您的应用程序在每个平台上表现不同的原因。
(尽管它仍然不应该,除非你使用不同的资产。)
如果您需要一个图标但仍想使用 ImageButton
,请考虑在内部它只是一个 Button
,其中一个单元格中添加了一个 Image
实例(Button
是一个 Table
)。您可以使用 ImageButton#getImageCell()
访问存储 Image
的 Cell
并修改它 - 例如,强制使用特定的宽度和高度。您可能还想使用 ImageButton#getImage()
来更改 Image#setScaling(Scaling)
的缩放比例。
无论如何,在运行时创建样式可能容易出错 - 样式构造函数非常庞大,老实说,如果不检查图像按钮样式源,我无法猜测哪个可绘制对象绘制了什么。您应该考虑使用 Skin
and define your styles with JSON files (you can find some free themes here).
所以我在使用 libgdx 的 ImageButton class 时遇到了这个问题,问题是在 android 中图像没有扩展到按钮的完整大小,在桌面上它做或至少做更多,所以我不得不问是否有办法强制图像获得背景(按钮)的大小?所以我可以尝试在两个平台上进行平等的可视化。
这是一个屏幕截图,后退 space 按钮是 ImageButton...
编辑:这是代码....
private void createButtons() {
ImageButtonStyle ibs = new ImageButtonStyle(buttonD,buttonD_p,buttonD,bsIcon,bsIcon,bsIcon);
buttonBS = new ImageButton(ibs); // This is the backspace button
....
}
private void addButtonsToTable() {
float pad = 1;
float BUTTON_SIZE = this.BUTTON_SIZE - pad *3;
table.top();
table.center();
table.add(buttonBS).width(BUTTON_SIZE).height(BUTTON_SIZE).pad(pad);
table.row();
...
}
如果您希望图像成为 背景 而不仅仅是图标,您应该考虑使用纯 Button
或 TextButton
而不是 ImageButton
。 ImageButton
应仅用于在其背景上另外 绘制图标的按钮。 ImageButton
用法的示例可以是带有 "X"(十字)图像的 window 关闭按钮,或带有扬声器图标的音乐切换按钮。
当您需要图像填充整个按钮区域时,将其设置为ButtonStyle#up
- 它会成为按钮的背景。 ImageButton#imageUp
只是一个不会以任何方式缩放的图标(默认情况下),因此这可能是您的应用程序在每个平台上表现不同的原因。
(尽管它仍然不应该,除非你使用不同的资产。)
如果您需要一个图标但仍想使用 ImageButton
,请考虑在内部它只是一个 Button
,其中一个单元格中添加了一个 Image
实例(Button
是一个 Table
)。您可以使用 ImageButton#getImageCell()
访问存储 Image
的 Cell
并修改它 - 例如,强制使用特定的宽度和高度。您可能还想使用 ImageButton#getImage()
来更改 Image#setScaling(Scaling)
的缩放比例。
无论如何,在运行时创建样式可能容易出错 - 样式构造函数非常庞大,老实说,如果不检查图像按钮样式源,我无法猜测哪个可绘制对象绘制了什么。您应该考虑使用 Skin
and define your styles with JSON files (you can find some free themes here).