我使用RecyclerView一次将一个ImageButtons添加到GridLayout。我的应用程序侦听传入的图像和字符串以标记按钮。
我需要能够将按钮的大小设置为设定值(例如50x50dp)。下面我的图像显示了我的图像是如何进入的,我意识到每个点都在因为某些图像比其他图像更大,并且没有留出其他图像的空间,所以行不会被填充。
有没有办法可以在我的传入ImageButtons中设置它?我在哪里设置这些参数?在我的RecyclerViewAdapter中?
答案 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);
}