Android以编程方式在TableRow中为ImageButton设置边距

时间:2011-03-31 07:16:58

标签: android margin imagebutton tablerow

我在Java代码中定义了一个TableLayout。对于每一行,我显示三个ImageButtons。按下其中一个按钮时,背景颜色会发生变化。为了很好地显示它,我设置了10px的填充。

我现在遇到的问题是,如果你按下彼此相邻的两个按钮,你就不会看到按钮之间的中断。所以我想知道,有可能在ImageButtons或其他解决方案上设置一个保证金吗?

2 个答案:

答案 0 :(得分:11)

尝试

int leftMargin = 10;
((MarginLayoutParams) imageButton.getLayoutParams()).leftMargin = leftMargin;

修改 如果您不使用xml中定义的ImageButton,则必须设置LayoutParams,如下所示:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT);
params.leftMargin = 10;
b.setLayoutParams(params);

我假设您在列表项中使用LinearLayout

答案 1 :(得分:2)

确保使用LayoutParams作为控件所在的容器。在您的情况下,按钮位于TableRow中,因此如果您使用任何其他类型的按钮,请使用TableRow.LayoutParams params,控件根本不显示。