2016-03-16 5 views
0

У меня есть изображение 32x32 в ImageButton. Хотя layout_width и layout_height установлены в wrap_content, ImageButton отображается как прямоугольник с высотой, большей ширины. Макет контейнера - это LinearLayout, ничего особенного в том, что он весит размер других виджетов в этом макете.Android ImageButton имеет неравную ширину и высоту

Почему это? Кажется, после того, как я обновил свой телефон из 4.1.1. к 4.4 это странное поведение вошло.

+0

Post код. –

+0

кнопка не по умолчанию квадрат. поэтому он может отображать некоторую прямоугольную форму. попробуйте imageView –

+0

Пожалуйста, введите код. –

ответ

0

Является ли изображение фиксированным размером. Если да, значит, вы можете указать фиксированный размер вместо использования содержимого оболочки.

Или, если это динамический означает, что вы можете использовать ниже SquareImageview

public class SquareImageView extends ImageView { 

    public SquareImageView(Context context) { 
     super(context); 
    } 

    public SquareImageView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public SquareImageView(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 

     int width = getMeasuredWidth(); 
     setMeasuredDimension(width, width); 
    } 
} 

Используйте этот класс в вашем приложении.

Затем вызовите эту SquareImageView вместо ImageView и layout_height should be match_parent

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