Java Libgdx图像按钮填充?

Java Libgdx图像按钮填充?,java,libgdx,imagebutton,Java,Libgdx,Imagebutton,所以我对libgdx的ImageButton类有一个问题,问题是在android中,图像没有扩展到按钮的全部大小,而在桌面上,图像扩展到了,或者至少扩展到了更多,所以我不得不问,是否有办法强制图像获得背景(按钮)的大小?所以我可以试着在两个平台上做同样的视觉效果 这是一个屏幕截图,返回空间按钮是ImageButton。。。 编辑:这是代码 private void createButtons() { ImageButtonStyle ibs = new ImageBu

所以我对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();

        ...
    }

如果您希望图像是背景而不是图标,则应考虑使用“纯<代码>按钮>代码>或<代码>文本按钮< /代码>,而不是<代码>图像按钮>代码>。code>ImageButton应仅用于在其背景之外绘制图标的按钮。

ImageButton
用法的一个例子是带有“X”(十字)图像的窗口关闭按钮,或带有扬声器图标的音乐切换按钮

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

(尽管仍然不应该,除非您使用不同的资产。)

如果您需要一个图标,仍然想使用<代码> IMAGE按钮,请在内部考虑它只是一个<代码>按钮<代码> > <代码>图像<代码>实例添加到它的一个单元(<代码>按钮>代码>是<代码>表< /代码>)。您可以使用

ImageButton#getImageCell()
访问存储
图像的
单元格
,并对其进行修改-例如,强制指定宽度和高度。您可能还想使用
ImageButton\getImage()
来更改
Image\setScaling(scaling)
的缩放比例


无论如何,在运行时创建样式可能很容易出错-样式构造函数非常庞大,如果不查看图像按钮样式源,我真的无法猜测哪个可绘制文件绘制了什么。您应该考虑使用JSON文件来定义和使用样式(您可以找到一些免费的主题)。

如果您希望图像是背景而不是图标,则应考虑使用“纯代码>按钮或<代码>文本按钮,而不是<代码> IMAEPutsB/<代码>。code>ImageButton

应仅用于在其背景之外绘制图标的按钮。
ImageButton
用法的一个例子是带有“X”(十字)图像的窗口关闭按钮,或带有扬声器图标的音乐切换按钮

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

(尽管仍然不应该,除非您使用不同的资产。)

如果您需要一个图标,仍然想使用<代码> IMAGE按钮,请在内部考虑它只是一个<代码>按钮<代码> > <代码>图像<代码>实例添加到它的一个单元(<代码>按钮>代码>是<代码>表< /代码>)。您可以使用

ImageButton#getImageCell()
访问存储
图像的
单元格
,并对其进行修改-例如,强制指定宽度和高度。您可能还想使用
ImageButton\getImage()
来更改
Image\setScaling(scaling)
的缩放比例


无论如何,在运行时创建样式可能很容易出错-样式构造函数非常庞大,如果不查看图像按钮样式源,我真的无法猜测哪个可绘制文件绘制了什么。您应该考虑使用JSON文件来定义和使用样式(您可以找到一些免费的主题)。< /P>您可以发布您的GUI构建代码吗?两个平台上的按钮应完全相同。您是否使用
表格
显示按钮?是,我使用表格。当然,当我到家的时候,我会发代码的。刚刚发了代码,谢谢!你能发布你的GUI构建代码吗?两个平台上的按钮应完全相同。您是否使用
表格
显示按钮?是,我使用表格。当然,当我到家的时候,我会发代码的。刚刚发了代码,谢谢!我明白,但我需要背景和图标,这就是为什么我使用ImageButton。我真的不需要桌面应用程序,我担心的是,在一些android设备中,它可能会像在我的桌面应用程序中一样,我也不希望它填满整个区域,我希望它在所有android设备中都表现相同,这样我就可以确保没有设备像我的桌面应用程序那样显示它。谢谢你的回答。如果你想让图标填满整个图像,那么使用图标有什么意义呢
ImageButton
内部只是一个
按钮
,其中一个单元格中添加了一个
图像
实例(
按钮
是一个
)。您可以使用
ImageButton#getImageCell()
访问存储
图像的
单元格
,并对其进行修改-例如,强制指定宽度和高度。您可能还希望使用
ImageButton\getImage()
更改
Image\setScaling(scaling)
的缩放比例。正如我所说,我不希望图标填充背景,只是为了表现相同。但是如果它能填充整个背景,那就容易多了。我只需要在我的图像上添加一个透明的填充物,就可以了。它不能仅仅是一个按钮,因为用户可以更改背景颜色和数字颜色(在本例中是图标颜色),所以我可以使用buttonBS.getImage().setColor(颜色)轻松地完成这项工作;和按钮。设置颜色(颜色);我懂了。好的,您可以使用
buttonBS.getImageCell().size(任意)
强制每个平台上图标的特定大小。不过,我会确保缩放是正确的-y