2012-04-23 2 views
0

Как я могу получить и установить размер ImageButton программно? Android, похоже, делает размер кнопки больше, чем размер изображения. Возможно, я ошибаюсь. Я хочу сделать его того же размера, что и размер изображения.Как получить и установить размер ImageButton?

+0

Что касается использования 'wrap_content' для макета высоты и ширины? –

ответ

3

попытаться установить отступы для 0dp в макете XML:

<ImageButton ... 
android:padding="0dp" /> 

Изображение должно быть как кнопки. Если вы хотите кнопку (но не изображение) прозрачного набор кнопки цвета фона, чтобы сделать на @null:

<ImageButton ... 
android:background="@null" /> 
+0

Спасибо. Но это не работает. Я написал еще один вопрос в http://stackoverflow.com/questions/10283760/how-to-place-imagebutton-at-x-y-location – user1301568

0
int height = button.getLayoutParams().height; 
int width = button.getLayoutParams().width; 

button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT)); 
+0

Спасибо. Но это не работает. Я написал еще один вопрос в http://stackoverflow.com/questions/10283760/how-to-place-imagebutton-at-x-y-location – user1301568

0

Чтобы программно получить высоту и ширину:

ViewGroup.LayoutParams layoutParams = mImageButton.getLayoutParams(); 
int height = layoutParams.height; 
int width = layoutParams.width; 

Чтобы программно установить высота и ширина:

int myHeight = ContextCompat.getDrawable(getContext(), R.drawable.myImageAsset).getIntrinsicHeight(); 
/*any desired height, but for OP's sake ^^*/ 
int myWidth = ContextCompat.getDrawable(getContext(), R.drawable.myImageAsset).getIntrinsicWidth(); 
/*any desired width, but for OP's sake ^^*/ 
ViewGroup.LayoutParams layoutParams = mImageButton.getLayoutParams(); 
layoutParams.height = myHeight; 
layoutParams.width = myWidth; 
mImageButton.setLayoutParams(layoutParams);