zoukankan      html  css  js  c++  java
  • PhotoView实现图片随手势的放大缩小的效果

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

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

    下面简单说一下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条目中是缩略图,自然放大的时候就会失真。

  • 相关阅读:
    cocos2d-X json
    CSS3背景 background-size
    HTML、CSS、meta常用代码
    less相关知识点总结
    使用elementUI滚动条之横向滚动
    text-fill-color:仿苹果官网介绍效果 CSS设置文字渐变效果 文字背景图遮罩
    CSS 解析原理_你知道浏览器CSS是如何解析吗?
    CSS新特性contain,控制页面的重绘与重排
    php使用 header 头下载文件
    Vue单页面应用阻止浏览器记住密码
  • 原文地址:https://www.cnblogs.com/ruichenblogs/p/5192893.html
Copyright © 2011-2022 走看看