Android开发 一个类让你的item变成正方形

有的时候我们想搞点事情,想写个网格布局什么又不想用专门的控件,这个时候就需要自己写个布局去控制宽高了,好了既然有这种需求,那么就会有代码满足你需求很简单:


public class SquareRelativeLayout extends RelativeLayout {

public SquareRelativeLayout(Context context, AttributeSet attrs,

int defStyle) {

super(context, attrs, defStyle);

}

public SquareRelativeLayout(Context context, AttributeSet attrs) {

super(context, attrs);

}

public SquareRelativeLayout(Context context) {

super(context);

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

setMeasuredDimension(getDefaultSize(0, widthMeasureSpec),

getDefaultSize(0, heightMeasureSpec));

int childWidthSize = getMeasuredWidth();

// 高度和宽度一样

heightMeasureSpec = widthMeasureSpec = MeasureSpec.makeMeasureSpec(

childWidthSize, MeasureSpec.EXACTLY);

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

}

}


嵌套在你想要他变成正方形的布局外面就行啦

Android开发 一个类让你的item变成正方形_第1张图片

分隔线我是在布局里控制的嘻嘻

Android开发 一个类让你的item变成正方形_第2张图片

你可能感兴趣的:(Android开发 一个类让你的item变成正方形)