PhotoView的点击事件遇到的问题

来源:互联网 发布:超市库存软件 编辑:程序博客网 时间:2024/05/22 04:41

      • 问题描述
      • 功能实现
      • 总结

问题描述

项目中有个查看图片的功能,之前的同事用的PhotoView + ViewPager 实现的,现在我要补充的一个功能就是点击其中一张图片然后查看原图(带转场动画),再点击一次就回到原来的页面。

功能实现

点击跳转大图,包括转场动画和简单实现,我们再次就不赘述了,如果遇到问题了,可以看看我这篇文章
关于activity转场动画makeSceneTransitionAnimation没效果的问题的解决办法。
接下来实现点击一次大图片就回到上一页面的这个功能时就遇到了问题,我在网上搜到使用这个监听方法:

mAttacher = new PhotoViewAttacher(photoView);mAttacher.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {                @Override                public void onPhotoTap(View view, float x, float y) {                    finish();                }            });

这么写是可以实现单击大图回到上个页面,但是放大的图片是在一个ViewPager中,图片在左右滑动的时候就会先把图片放大,然后在滑动到上一页下一页,我就郁闷了,为什么会这样,经过查看源码,发现PhotoViewAttacher还有个方法

 mAttacher.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() {                @Override                public void onViewTap(View view, float x, float y) {                    photoView.setOnPhotoTapListener(null);                    onBackPressed();                }            });

还是不行,我就在想能不能再单击的时候设置PhotoView不能放大,但是试过之后还是不行,最后偶然试了一下直接设置PhotoView的setOnPhotoTapListener监听方法,运行之后达到了我要的效果。代码如下:

photoView.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {                @Override                public void onPhotoTap(View view, float x, float y) {                    onBackPressed();                }            });

总结

将我自己在工作中遇到的问题记录下来,问题可能有大有小,但是过一段时间再回过头看一看,对自己的以后的工作也有帮助,要是能帮助到和我遇到相同问题的同学,那我会很高兴的!

0 0
原创粉丝点击