最近在实现一个类似淘宝中的评论列表的功能,列表中的评论图在点击后显示大图进行查看,各家app只要有图片展示就会有这样大图浏览的功能。
可以看到,一个体验较好的查看大图的除了基本功能外,还应该有以下几点功能,
第一,左右滑动时切换图片;
第二,双击或双指缩放实现图片的缩放;
第三,图片放大时,滑动到边缘继续滑动时,切换图片。
但凡app中使用了fresco库,对于大图浏览的实现都比较头疼,因为fresco提供的SimpleDraweeView不支持缩放。看网上有人扩展了SimpleDraweeView,使之支持缩放。Facebook可能也意识到这么强大的库不应该有这样的功能缺失,于是在近期提供了一个新的sample:ZoomableDraweeView,专门用来支持缩放,欣喜若狂的下载下来把玩了一把,发现三个需求点都满足!然而,这个控件在细节上有个问题不满足,可能是还没完善吧:
双击后放大到最大,再双击后将图片缩小为最小,另外双指一直缩小也是将图片缩小到最小,我们期望这两种操作完成之后应该将图片恢复为原始大小,这个最小不应该作为一种展现形式,因为没有用户想看一张缩小的图。虽然ZoomableDraweeView源码可以改变这个最小值,但这样的话体验不是很好。
于是,我对ZoomableDraweeView的源码进行了修改,实现了上面的功能,同时还加入了下滑关闭的功能。如果你也有类似的需求,可以直接拿代码:https://github.com/ibosong/CommentGallery