天天看点

android 自定义gallerey并实现预览功能

自从gallery被谷歌废弃以后,google推荐使用viewpager和horizontalscrollview来实现gallery的效果。的确horizontalscrollview可以实现gallery的效果,但是horizontalscrollview存在一个很大的问题,如果你仅是用来展示少量的图片,应该是没问题的,但是如果我希望horizontalscrollview可以想viewpager一样,既可以绑定数据集(动态改变图片),还能做到,不管多少图片都不会oom(viewpager内部一直初始化,回收,至多只保持3个view)。本篇博客首先介绍horizontalscrollview的简单用法,然后会在此基础上进行扩展,自定义horizontalscrollview实现我们上面提到的效果,类似一屏可以显示多个view的viewpager,再多的图片也不怕oom。

首先差一张图片

android 自定义gallerey并实现预览功能

自定义horizontalscrollview

思想:

1、首先根据屏幕的大小和item的大小,计算可以一个屏幕最多可以加载多少个item,然后加载该数量item。

2、当用户右滑(从右向左),滑动到一定距离时,加载下一张,删除第一张

3、当用户左滑(从左向右),滑动到一定距离时,加载上一张,删除最后一张

接下来我们写一个adapter用来填充界面,然后在我们首页组装下数据,设置下适配器就好了,是不是很简单。

有兴趣的可以下载代码:

https://github.com/xiangzhihong/gallery

继续阅读