Libgdx ImageButton填充?

时间:2016-05-01 04:17:26

标签: java libgdx imagebutton

所以我对libgdx的ImageButton类有这个问题,问题是在android中图像没有扩展到按钮的完整大小,而在桌面它确实或者至少它做了更多,所以我不得不问有一种方法可以强制图像获得背景(按钮)的大小吗?所以我可以试着在两个平台上做出相同的视觉效果。

下面有一个屏幕截图,后面的空格按钮是ImageButton ...... enter image description here

编辑:继承人代码....

    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();

        ...
    }

1 个答案:

答案 0 :(得分:3)

如果您希望图片是背景而不仅仅是图标,则应考虑使用普通ButtonTextButton代替ImageButtonImageButton仅适用于在其背景中另外添加图标的按钮。 ImageButton用法的示例可以是窗口关闭按钮,其中包含" X" (交叉)图像,或带有扬声器图标的音乐切换按钮。

当您需要图片填充整个按钮区域时,请将其设置为ButtonStyle#up - 它将成为按钮的背景。 ImageButton#imageUp只是一个不会以任何方式缩放的图标(默认情况下),因此这可能是您的应用程序在每个平台上表现不同的原因。

(虽然它仍然不应该,除非你使用不同的资产。)

如果您需要一个图标但仍想使用ImageButton,请在内部考虑它只是一个Button,并在其中一个单元格中添加了Image个实例({{1}是Button)。您可以使用Table访问存储ImageButton#getImageCell()的{​​{1}}并修改它 - 例如,强制使用特定的宽度和高度。您可能还希望使用Cell来更改Image的缩放比例。

无论如何,在运行时创建样式可能容易出错 - 样式构造函数很大,我老实说无法猜测哪个drawable绘制了什么而没有查看图像按钮样式源。您应该考虑使用Skin并使用JSON文件定义样式(您可以找到一些免费主题here)。