Android Zoom ImageView 开源库地址:
PhotoView
我们知道双击PhotoView能够缩放图片,有时候需要响应单击事件,比如类似朋友圈里的图文Feed流,双击图片实现缩放,单击图片隐藏ToolBar等控件:
这样的滑动图片浏览效果我们可以通过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;
}
}
}