在ViewPager中使用PhotoView的异常

在 Android 中 PhotoView 是一个用于查看图片的库,支持多点触摸来放大缩小图片,应用很广泛。单独使用 PhotoView 时一般没什么问题,但是我们经常会有这样的需求,多张图片能够切换浏览查看,并且每张图片都要支持放大缩小,这就需要用到 ViewPager 来实现了,遗憾的是在某些机型中,多点触摸放大缩小时会出现这样的异常:

#10903 java.lang.IllegalArgumentException
pointerIndex out of range
android.view.MotionEvent.nativeGetAxisValue(Native Method)

解决方案如下,自定义一个 ViewPager ,捕获掉触摸时的异常:

public class PhotoViewPager extends ViewPager {

    public PhotoViewPager(Context context) {
        super(context);
    }

    public PhotoViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        try {
            return super.onTouchEvent(ev);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        try {
            return super.onInterceptTouchEvent(ev);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return false;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 感恩 先生出去锻炼带回美味的早餐 感恩 父亲的一句话引起了我内心的不平和,我能觉察到我的不平和,并做了疗愈清理...
    彻底解脱阅读 1,589评论 0 1
  • 今天七夕节啦,大雨哗哗下了大半天,喜鹊们都去给牛郎织女搭桥了吧,精心为我们家哥哥准备的七夕卡片和礼物! ...
    画画咩阅读 1,769评论 1 0
  • 两个人两句话两个侧脸 你的脸你的眼 使我迷恋 如今你那寒冷语言 两个人两个方向渐渐疏远 你的言语 连抱歉都那么敷衍...
    kissfunk阅读 1,558评论 1 4

友情链接更多精彩内容