android故事累积

Fresco结合PhotoView实现手势缩放

2016-05-25  本文已影响3999人  盛夏的阳光

项目中需要用到手势缩放,所以查找了一些Demo,特作此笔记。
(第一次写正式的笔记,文笔不佳,请见谅(~ ̄▽ ̄)~)
笔者查看到的几个项目,都是使用自定义控件,一个是ImagePipeline结合PhotoView,一个是使用SimpleDraweeView结合PhotoView,因此下文主要介绍这两种方法。

1. ImagePipeline结合PhotoView

这样就实现了手势缩放。
参考

2. SimpleDraweeView结合PhotoView

这样就实现了SimpleDraweeView的手势缩放。
参考Demo:
PhotoDraweeView

3.修改图片,实现缩放

由于笔者项目中需要实现的是,一张图片上添加另一张小图片,再实现缩放,见如下效果:

QQ截图20160525163243.png
需要修改Demo中的代码,Fresco的文档中写到修改图片的方法如下:
Modifying the Image (Postprocessing) QQ截图20160525163645.png
主要修改图片的操作在process()方法中
因此,修改上述两种方法中的图片:
1. ImagePipeline QQ截图20160525164356.png
但是在部分机型上会报IllegalStateException错误,解决办法:
bitmap=bitmap.copy(Config.ARGB_4444, true);
不过这样的话,图片占用内存又增大了,Google一下,有一种解决方法是直接在JNI操作,但是我自己没有仔细研究AndroidJniBitmapOperations

2.SimpleDraweeView

QQ截图20160525165701.png

其余代码不变。这样就完成了 修改图片+手势缩放。用这种方法,即使在第一种方法中报IllegalStateException错的2.3.7机型,也没有报错。

题外话
写了几个小时,终于把这篇篇幅不长的文章磕磕绊绊写完了y(๑•̀ㅂ•́)و✧

QQ图片20160525170247.png
手生,还是得多写多记录,看花容易画花难呀~( ̄▽ ̄~)(~ ̄▽ ̄)~
上一篇下一篇

猜你喜欢

热点阅读