2013-01-02 1 views
1

Я использую макет таблицы для макетов с использованием весов, кнопки получают размер 0dip или wrap_content, и поэтому они расширяются по весу.Android ImageButton setMaxheight не имеет эффекта

Я пытаюсь преобразовать кнопку в ImageButton и установить изображение в размере кнопки и не расширять его.

Я позволил кнопке создать и получить ее размер, а затем назначить изображение и ограничить его высоту с помощью ImageButton.setMaxHeight();

final ImageButton ib = (ImageButton) findViewById(R.id.buttonOptions); 
    ib.post(new Runnable() { 
     public void run() { 
      final int height = ib.getHeight(); 
      ib.setScaleType(ScaleType.FIT_CENTER); 
      ib.setMaxHeight(5); // or height  
      ib.setImageResource(R.drawable.options); 

     }}); 

Изображение втягивается в этом оригинальном размере, тем самым расширяя кнопку ... setMaxHeight() не является ограничение изображения высоты/ширины. Любая идея почему?

ответ

3

решить его с помощью

ib.setAdjustViewBounds(true); 
+0

Хорошее решение. благодаря – Amarildo

0
ViewTreeObserver observer = ib.getViewTreeObserver(); 
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
//here you can get height and set height 
} 

Не уверен, но попробуйте. Это может вам помочь.

+0

тот же результат, кнопка вырастает до размера изображения – aviran

+0

@aviran попробовать ib.setBackgroundResource (R.drawable.options); вместо ib.setImageResource (R.drawable.options); –

0

setMaxHeight() предназначен для кнопки изображения, а не для изображения в нем.

Try,

ib.setScaleType(ScaleType.CENTER_CROP); 
+0

тот же результат, кнопка увеличивается до размера изображения – aviran

+0

Попробуйте установить ширину и высоту макета как android: layout_width = "60dp" android: layout_height = "60dp" –

Смежные вопросы