PhotoView实现图片随手势的放大缩小的效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PhotoView实现图片随手势的放大缩小的效果相关的知识,希望对你有一定的参考价值。

项目需求:在listView的条目中如果有图片,点击条目,实现图片的放大,并且图片可以根据手势来控制图片放大缩小的比例。类似于微信朋友圈中查看好友发布的照片所实现的效果。

思路是这样的:当点击条目的时候触发listview的点击事件,跳转到另一个页面,在页面中自定义一个ImageView来实现图片的随手势的放大。但是点击图片来实现图片消失这一点这块小弟不会做,并且图片随手势的放大效果并不好。所幸的是最中找到了photoview这一个控件。使用photoView控件需要使用jar包:发现博客园不能上传jar,有需要的可以私信我:邮箱 [email protected]

下面简单说一下photoview的用法。非常简单幺

在布局文件中添加photoview控件:

 

  <uk.co.senab.photoview.PhotoView
        android:id="@+id/img_showimgview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

主界面中:

photoview = (PhotoView) findViewById(R.id.img_showimgview);

photoview.setImageBitmap(bit);

photoview的点击事件的监听:

photoview.setOnPhotoTapListener(new OnPhotoTapListener() {
            
            @Override
            public void onPhotoTap(View view, float x, float y) {
                // TODO Auto-generated method stub
                finish();
                
            }
        });

在实现项目的需求的过程中,遇到了图片失真的问题,下面说一下图片失真的原因:

起初的实现方法是这样的:

在点击listview的条目的时候获取到imageView中的图片,在实现页面跳转的时候将图像对象传递到下一个页面

获取ImageView中图片的方法是:

img_get_photo.setDrawingCacheEnabled(true);
bitt = Bitmap.createBitmap(img_get_photo.getDrawingCache());
img_get_photo.setDrawingCacheEnabled(
false);

问题就出现在这里,此时获得的bit,是imageview的“影像”并不是imageView中加载的图片,通俗得说就是对imageview进行截屏处理,因为listview条目中是缩略图,自然放大的时候就会失真。

 

以上是关于PhotoView实现图片随手势的放大缩小的效果的主要内容,如果未能解决你的问题,请参考以下文章

jq手机端手势放大缩小怎么弄啊,例如下图使其放大

在网页里点开放大了一张图片后,怎么实现随鼠标滚轮放大缩小?

iOS Swift 仿微信朋友圈实现图片点击放大查看

android 图解 PhotoView,从‘百草园’到‘三味书屋’!

Android -- 开源库PhotoView 的基本使用

winform窗体的实现单击按钮实现图片放大缩小