Android Zoom ImageView 開源庫位址:
PhotoView
我們知道輕按兩下PhotoView能夠縮放圖檔,有時候需要響應單擊事件,比如類似朋友圈裡的圖文Feed流,輕按兩下圖檔實作縮放,單擊圖檔隐藏ToolBar等控件:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiMxIjMzEDM3EjNxgDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
這樣的滑動圖檔浏覽效果我們可以通過
ViewPager
和
PhotoView
實作,為了響應單擊事件,需要使用到
PhotoViewAttacher
,代碼如下:
mAttacher.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() {
@Override
public void onViewTap(View view, float x, float y) {
// 隐藏Toolbar等操作
}
});
注意:這裡的
ViewPager
需要自定義一個View,繼承ViewPager,并重寫
onInterceptTouchEvent
方法,防止與
PhotoView
的觸摸事件沖突發生錯誤:
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class PhotoViewPager extends ViewPager {
public PhotoViewPager(Context context) {
super(context);
}
public PhotoViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
try {
return super.onInterceptTouchEvent(ev);
} catch (IllegalArgumentException e) {
return false;
}
}
}