版权声明:本文为xing_star原创文章,转载请注明出处!
本文同步自http://javaexception.com/archives/214
Android微信九宫格图片展示控件
半年前,公司产品的帖子流这块进行大改版,像素级的复制微信朋友圈的效果,发现微信的图片展示9宫格有些不好处理,经过几番google,找到了一个轮子,https://github.com/HMY314/NineGridLayout ,这个项目就是为了微信9宫格而诞生的,真是方便了后来的人,极大提高了我们的开发效率。
简单说下NineGridLayout的实现吧,NineGridLayout继承的是ViewGroup,图片所在的区域都是一个个的ImageView,这些ImageView在被添加到父容器之前,已经计算出了宽高,以及对应在NineGridLayout的坐标,addView的时候就已经大致固定了ImageView的位置了。当然了在图片被真正加载出来后,也是支持重新设置ImageView的位置。
总的来说,代码不是很复杂,运行github上的sample,自己跟踪下执行过程,应该就能够看懂作者的设计思想,于是我就复制了这两个关键类,应用到了公司的产品中。
此外,我们还可以在这个代码的基础上进行修改,满足一些变种的图片展示需求。
我们可以看一下,sample中的一些展示效果,如下图
最近几天新产品有个需求,我对这个开源项目进行了一些定制,变成了如下的效果
这个项目,还是能够给我们带来很大的参考价值,基于这个项目做一些二次开发,可以满足类似的产品需求。