Android自定义九宫格图片展示,类似微信朋友圈

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36726461/article/details/79957932

之前网上也找了很多类似的功能,但是很多放在列表中复用item就出现高度测量是0,出现条目中图片空间不显示问题

这里做了一些优化,解决该问题

具体可参考这篇博客,(这里要感谢博主)不过这个放在列表复用时是有上述问题存在的,这边做了个改进

https://blog.csdn.net/hmyang314/article/details/51415396

主要实现功能:

1、九张图片展示,也可全部展示,九张以上显示+n

2、图片点击变暗的效果

3、4张图片是2*2显示

4、可放在recyclerview中显示

5、一张图片时显示比例为3:2


优化部分 NineGridLayout 该类中onMeasure重写重新测量高度

下面超出一张部分的设置布局宽高可以删除了

下面自定义的图片一张时设置填充控件

/**
 * 描述:
 * 作者:wtx
 * 时间:2017/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);

    }
}
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页