Glide之后台线程加载及缓存资源
2016-04-04 22:45
357 查看
在后台线程加载及缓存资源
为了使后台线程加载和处理媒体资源更容易,Glide新增了两个API:downloadOnly(int, int)
into(int, int)
Glide的
downloadOnly(int, int)API允许你下载图片的字节流到磁盘中,以便你之后用到。你可以在UI线程中异步地使用(需要一个Target作为参数)或者在后台线程中同步地使用(需要整数的宽高值作为参数)。
在后台线程中同步下载图片(仅下载图片到磁盘而不做任何处理):
FutureTarget<File> future = Glide.with(applicationContext) .load(yourUrl) .downloadOnly(500, 500); File cacheFile = future.get();
之后,如果你想显示这个已缓存的图片,可以这样:
Glide.with(yourFragment) .load(yourUrl) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(yourView);
使用DiskCacheStrategy.ALL或DiskCacheStrategy.SOURCE以确保Glide使用这个已缓存的图片资源(全尺寸的缓存)。
如果你确实想在后台线程中处理一下已解码的图片,就不要用
downloadOnly(int, int)了,可以用
into(int, int)API获取一个
FutureTarget,然后使用
.get()就可以拿到Bitmap了。如获取一个500*500的centerCrop图片:
Bitmap myBitmap = Glide.with(applicationContext) .load(yourUrl) .asBitmap() .centerCrop() .into(500, 500) .get()
但要注意,
.get()会阻塞主线程,影响App的性能和交互,所以最好不要在主线程中使用。
references:
Glide Wiki
相关文章推荐
- 《MySQL必知必会学习笔记》:插入数据
- Discontinuous Galerkin method for steady transport problem
- 两个Activity之间的观察者模式
- 2016.4.4HTML表格,列表,块,布局
- cocospod 搭建环境和使用
- 分析Linux内核启动过程:从start_kernel到init
- Gson解析数据使用笔记
- bzoj 1812 river
- Alphabet 和 Facebook的Stratospheric Internet纠结于繁文缛节
- Android消息处理机制
- grafana图形化数据展示软件介绍
- Socket使用大全
- MQTT协议学习笔记
- shiro整合redis做缓存
- storm安装
- strcpy 字符串拷贝函数解析
- 二叉树遍历
- SignalR技术
- 借助 Lucene.Net 构建站内搜索引擎(下)
- 20159315《网络攻防实践》第五周学习总结