Android - 如何以编程方式更改ImageButton的宽度?

时间:2011-05-23 20:01:15

标签: android width imagebutton

我有一个ImageButton。代码是 -

ImageButton shareButton = new ImageButton(this);
shareButton.setBackgroundResource(android.R.drawable.ic_menu_share);

RelativeLayout.LayoutParams shareParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
shareParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, navigationLogo.getId());

shareButton.setLayoutParams(shareParams);

我需要改变它的宽度。但是ImageButton和布局参数都没有setWidth方法。在没有答案的情况下在网上看了很多。

2 个答案:

答案 0 :(得分:8)

您可以使用实际数字,而不是使用RelativeLayout.WRAP_CONTENT作为宽度,这将是按钮的新宽度(以像素为单位)。由于您可能希望将dp中的宽度指定为与分辨率无关,因此您可能需要使用如下方法将dp转换为像素:

public static int dpToPixels(Context context, float dp) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dp * scale + 0.5f);
}

答案 1 :(得分:0)

试试这个。

ImageButton shareButton = new ImageButton(this);
shareButton.setBackgroundResource(android.R.drawable.ic_menu_share);

RelativeLayout.LayoutParams shareParams = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
shareParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, navigationLogo.getId());
shareParams.width = INTEGER_NUMBER;
shareButton.setLayoutParams(shareParams);