之前网上也找了很多类似的功能,但是很多放在列表中复用item就出现高度测量是0,出现条目中图片空间不显示问题
这里做了一些优化,解决该问题
具体可参考这篇博客,(这里要感谢博主)不过这个放在列表复用时是有上述问题存在的,这边做了个改进
/hmyang314/article/details/51415396
主要实现功能:
1、九张图片展示,也可全部展示,九张以上显示+n
2、图片点击变暗的效果
3、4张图片是2*2显示
4、可放在recyclerview中显示
5、一张图片时显示比例为3:2
优化部分NineGridLayout 该类中onMeasure重写重新测量高度
下面超出一张部分的设置布局宽高可以删除了
下面自定义的图片一张时设置填充控件
/**
* 描述:
* 作者:wtx
* 时间:/4/10
*/
public abstract class NineGridLayout extends ViewGroup {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
mTotalWidth = getDefaultSize(widthSize,widthMeasureSpec);
mSingleWidth = (int) ((mTotalWidth - mSpacing * (3 - 1)) / 3);
int size = getListSize(mUrlList);
itn width =mTotalWidth ;
int heigth = 0;
if (size = 1){
width = mSingleWidth*2;
height = mSingleWidth*3;
}else if(size >1){
generateChildrenLayout(size);
width = mTotalWidth;
heiht =(int) ((mSingleWidth*mRows+ mSpacing* (mRows-1) );
}
setMeasuredDimension(wid,height);
}
}