所以我对libgdx的ImageButton类有这个问题,问题是在android中图像没有扩展到按钮的完整大小,而在桌面它确实或者至少它做了更多,所以我不得不问有一种方法可以强制图像获得背景(按钮)的大小吗?所以我可以试着在两个平台上做出相同的视觉效果。
下面有一个屏幕截图,后面的空格按钮是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();
...
}
答案 0 :(得分:3)
如果您希望图片是背景而不仅仅是图标,则应考虑使用普通Button
或TextButton
代替ImageButton
。 ImageButton
仅适用于在其背景中另外添加图标的按钮。 ImageButton
用法的示例可以是窗口关闭按钮,其中包含" X" (交叉)图像,或带有扬声器图标的音乐切换按钮。
当您需要图片填充整个按钮区域时,请将其设置为ButtonStyle#up
- 它将成为按钮的背景。 ImageButton#imageUp
只是一个不会以任何方式缩放的图标(默认情况下),因此这可能是您的应用程序在每个平台上表现不同的原因。
(虽然它仍然不应该,除非你使用不同的资产。)
如果您需要一个图标但仍想使用ImageButton
,请在内部考虑它只是一个Button
,并在其中一个单元格中添加了Image
个实例({{1}是Button
)。您可以使用Table
访问存储ImageButton#getImageCell()
的{{1}}并修改它 - 例如,强制使用特定的宽度和高度。您可能还希望使用Cell
来更改Image
的缩放比例。
无论如何,在运行时创建样式可能容易出错 - 样式构造函数很大,我老实说无法猜测哪个drawable绘制了什么而没有查看图像按钮样式源。您应该考虑使用Skin
并使用JSON文件定义样式(您可以找到一些免费主题here)。