Android - Как программно изменить ширину моего ImageButton? - PullRequest
3 голосов
/ 24 мая 2011

У меня есть кнопка 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 ]

8 голосов
/ 24 мая 2011

Вместо использования 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);
}
0 голосов
/ 24 мая 2011

Попробуйте это.

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);
...