一些动态,心情,晒单都有可能用到九宫格形式显示图片
自定义控件:NineGridLayout
public class NineGridLayout extends ViewGroup {
/**
* 图片之间的间隔
*/
private int gap;
private int columns;//
private int rows;//
private List listData;
private int totalWidth;
private ArrayList<PhotoInfo> ttImageInfoListS;
private Context mContext;
/**
* 图片选择工具
*/
private PhotoUtils utils = null;
public NineGridLayout(Context context) {
super(context);
}
public NineGridLayout(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray = context.obtainStyledAttributes(attrs,R.styleable.nineGridLayout);
int marginWidth = typedArray.getInt(R.styleable.nineGridLayout_marginWidth,34);
LogUtils.i("marginWidth",marginWidth+"");
totalWidth = Utils.getScreenWidthPx(context) - Utils.dip2px(context, marginWidth);
typedArray.recycle();
gap = Utils.dip2px(context, 5);
mContext = context;
}
//计算出ChildView的大小
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);
int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);
setMeasuredDimension(widthSpecSize, heightSpecSize);
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);