Glide之后台线程加载及缓存资源
来源:互联网 发布:淘宝极有家投诉电话 编辑:程序博客网 时间:2024/06/07 08:51
转载出自:http://blog.csdn.net/shangmingchao/article/details/51058785
在后台线程加载及缓存资源
为了使后台线程加载和处理媒体资源更容易,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();
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
之后,如果你想显示这个已缓存的图片,可以这样:
Glide.with(yourFragment) .load(yourUrl) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(yourView);
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
使用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()
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
但要注意,.get()
会阻塞主线程,影响App的性能和交互,所以最好不要在主线程中使用。
references:
Glide Wiki
0 0
- Glide之后台线程加载及缓存资源
- Glide之后台线程加载及缓存资源
- Glide之后台线程加载及缓存资源
- Glide之后台线程加载及缓存资源
- Win32多线程之后台线程
- java多线程之后台线程
- 线程之后台线程(一)
- Glide加载gif及拓展
- 图片加载及缓存框架Glide在安卓开发中的应用
- Glide加载图片并实现图片缓存
- Android图片加载缓存框架Glide
- android Glide加载图片缓存重复问题解决
- Glide加载图片缓存库出现
- Glide加载相同地址图片,不缓存
- 【MySQL】InnoDB体系结构之后台线程
- 图片加载与缓存利器(自动缓存)--第三方开源-- Glide
- Java线程之后台线程(守护线程)
- android之后台线程(UI与线程交互)
- 计算机操作系统笔记(7)--进程管理之线程
- 位图(tkinter,Python3.x)
- Android网络编程TCP、UDP(一)
- Linux screen模式下运行文件
- Android ——Window类
- Glide之后台线程加载及缓存资源
- win+pycharm+django+mysql开发(win系统pythonweb开发)(二)
- html特殊字符 编码css3 content:&quot;我是特殊符
- 计算机科学与技术——英语技能不可少
- Android网络编程TCP、UDP(二)
- 生成Json、解析Json的简单示例
- 如何使用新版万能地图下载器下谷歌地图像和等高线叠加
- Manifest merger failed解决方法
- 关于bootstrap学习总结