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

本文介绍了如何解决在Android中自定义九宫格图片展示时,复用列表item出现高度测量错误的问题。通过重写NineGridLayout的onMeasure方法进行优化,实现了图片点击变暗、不同数量图片的适配以及在RecyclerView中的使用。同时,当图片数量为1时,保持合适的显示比例。详细解决方案参考链接包含在内容中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

https://blog.youkuaiyun.com/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);

     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值