最近在實現一個類似淘寶中的評論列表的功能,列表中的評論圖在點擊后顯示大圖進行查看,各家app只要有圖片展示就會有這樣大圖瀏覽的功能。
可以看到,一個體驗較好的查看大圖的除了基本功能外,還應該有以下幾點功能,
第一,左右滑動時切換圖片;
第二,雙擊或雙指縮放實現圖片的縮放;
第三,圖片放大時,滑動到邊緣繼續滑動時,切換圖片。
但凡app中使用了fresco庫,對于大圖瀏覽的實現都比較頭疼,因為fresco提供的SimpleDraweeView不支持縮放。看網上有人擴展了SimpleDraweeView,使之支持縮放。Facebook可能也意識到這么強大的庫不應該有這樣的功能缺失,于是在近期提供了一個新的sample:ZoomableDraweeView,專門用來支持縮放,欣喜若狂的下載下來把玩了一把,發現三個需求點都滿足!然而,這個控件在細節上有個問題不滿足,可能是還沒完善吧:
雙擊后放大到最大,再雙擊后將圖片縮小為最小,另外雙指一直縮小也是將圖片縮小到最小,我們期望這兩種操作完成之后應該將圖片恢復為原始大小,這個最小不應該作為一種展現形式,因為沒有用戶想看一張縮小的圖。雖然ZoomableDraweeView源碼可以改變這個最小值,但這樣的話體驗不是很好。
于是,我對ZoomableDraweeView的源碼進行了修改,實現了上面的功能,同時還加入了下滑關閉的功能。如果你也有類似的需求,可以直接拿代碼:https://github.com/ibosong/CommentGallery