开源项目photoview获取图片大小以及偏移量并还原

因为需要一个支持手势缩放和平移的控件,所以上github找到了这个直接拿来用了photoview


我是需要定时网络请求图片然后再放到photoview,需要记录下图片的偏移量以及大小不然每次请求之后图片都会还原成原大小,搜索了一下没找到后来看了看源码找到了办法

在photoviewAttacher里面可以看到有这么一段,显然就知道了我们只需要获取到suppmatrix,然后再还原即可

image.png
                        //float scale = photoView.getScale();
                        //int[] offset = new int[2];
                        //float[] values = new float[9];
                        Matrix matrix = new Matrix();
                        photoView.getSuppMatrix(matrix);

                        //matrix.getValues(values);
                        // x方向上的偏移量(单位px)
                        //offset[0] = (int) values[2];
                        // y方向上的偏移量(单位px)
                        //offset[1] = (int) values[5];
                        //Log.d("TAG","offset[0]"+offset[0]);
                        //Log.d("TAG","offset[1]"+offset[1]);
                        //Log.d("scale", String.valueOf(scale));
                        Glide.with(context).load(getMapURL).dontAnimate().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(photoView);
                        //Log.d("TAG","setDrawable success!");
                        //photoView.setImageBitmap(bitmap);
                        //photoView.setScale(scale);
                        photoView.setSuppMatrix(matrix);

1 记录偏移和缩放矩阵
2 使用glide网络请求图片
3 还原photoview中图片大小以及偏移量

完整的只需要那四行就足够了,其余的注释掉的只是打出来看看偏移量大致对不对


我这个需求场景很简单,写下来没别的意思,就是希望之后有人通过搜索引擎搜索相关问题的时候能够立马找到答案

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,556评论 25 708
  • 假如某一天我突然死去 因为疾病或意外 临死的那一刻 我会去想些什么 是无憾的闭上双眼 悄然而逝 还是充满遗憾 抱怨...
    闲狐兔阅读 494评论 0 1
  • MySQL的查询,优化,事务,锁 几类数据是不适合在数据库中存放的 1.二进制多媒体数据 数据库空间资源消耗严重 ...
    洞天未晓阅读 367评论 0 0
  • 国破山河在,城春草木深。 你说尸横遍野,错了,那是地狱修罗。 身上的战袍飘扬,鲜血四溅。我抵死不肯放下的长戟,不知...
    如巳阅读 3,027评论 37 68
  • 每当夜幕落下时,我总有几分迷茫, 迷于前路之不辨方向,茫于未来之不可捉摸。 不记得何时起,爱上夜跑,且是深夜,一个...
    龙年阅读 215评论 1 2