Fresco相信大家都不陌生,是个很不错的图片加载器
最近做的需求有查看大图保存图片,保存图片很简单,但是保存gif图就需要处理一下了。
之前google了好久,也没有找到靠谱的答案,(还是API看的不够仔细 ~)
原理在Fresco 数据源和数据订阅者
因为是查看大图的时候保存图片,所以其实没有必要非从网络去下载图片了,内存or磁盘中可能已经有缓存,再去网络下载,显然是浪费用户的流量,所以我是这样做的。。。
情况一:
如果你的应用只有静态图片,那么
DataSource> dataSource1 = imagePipeline.fetchDecodedImage(imageRequest, null);dataSource1.subscribe(new BaseBitmapDataSubscriber() { @Override protected void onNewResultImpl(Bitmap bitmap) { //get bitmap } @Override protected void onFailureImpl(DataSource> dataSource) { }}, CallerThreadExecutor.getInstance());
情况二:
如果你的应用有静态图片也有动态图片(GIF)
DataSource> dataSource =
imagePipeline.fetchEncodedImage(imageRequest, null);
dataSource.subscribe(newBaseDataSubscriber>() {
@Override
prot