我在ImageButton中有一个32x32图像。尽管layout_width和layout_height设置为wrap_content,但ImageButton显示为高度大于宽度的矩形。容器布局是一个LinearLayout,在这个布局中加权其他小部件的大小没什么特别的。
这是为什么?在我从4.1.1升级手机后似乎。 4.4这种奇怪的行为进来了。
答案 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