如何在GridLayout中设置按钮的大小

时间:2016-05-16 21:28:43

标签: java android button gridview mobile

我使用RecyclerView一次将一个ImageButtons添加到GridLayout。我的应用程序侦听传入的图像和字符串以标记按钮。

我需要能够将按钮的大小设置为设定值(例如50x50dp)。下面我的图像显示了我的图像是如何进入的,我意识到每个点都在因为某些图像比其他图像更大,并且没有留出其他图像的空间,所以行不会被填充。

有没有办法可以在我的传入ImageButtons中设置它?我在哪里设置这些参数?在我的RecyclerViewAdapter中?

2 个答案:

答案 0 :(得分:1)

您可能想尝试将adjustViewBounds设置为true。

这可以在您的XML中使用android:adjustViewBounds =“true”

完成

或使用imageButton.setAdjustViewBounds(true)的代码; - 我会在视图初始化后调用它。

就个人而言,我更愿意尽可能用XML设置这些东西,因为这意味着我可以在以后尝试理解更少的代码。

无论哪种方式 - 您可以将ImageButton的大小设置为value和value-land文件中的值,以便操作系统为您处理这些事情。同样,更少的代码是更好的IMO。如果按钮总是一个尺寸,您只需在布局项目中设置它们即可。

答案 1 :(得分:0)

您可以尝试类似下面的代码。这段代码在类似情况下对我有用。

public Image resizeImageIcon(Image img)
{
    int w;
    int h;
    if(img.getWidth(null) >= img.getHeight(null))
    {
        w = ((50/img.getWidth(null))*img.getWidth(null));
        h = ((50/img.getWidth(null))*img.getHeight(null));
    }
    else
    {
        w = ((50/img.getHeight(null))*img.getWidth(null));
        h = ((50/img.getHeight(null))*img.getHeight(null));
    }

    return img.getScaledInstance(w, h, Image.SCALE_SMOOTH);
}