Android ImageButton具有不相等的宽度和高度

时间:2016-03-16 12:01:12

标签: android imagebutton

我在ImageButton中有一个32x32图像。尽管layout_width和layout_height设置为wrap_content,但ImageButton显示为高度大于宽度的矩形。容器布局是一个LinearLayout,在这个布局中加权其他小部件的大小没什么特别的。

这是为什么?在我从4.1.1升级手机后似乎。 4.4这种奇怪的行为进来了。

1 个答案:

答案 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