Glide是Google推荐用的图片加载框架
Glide.with(context).load(ImgUrl).into(ImageView);
load(): String(文件路径,网络地址),File(文件资源),Integer(资源id);
asGif: 表示的gif动画
asBitmap:表示静态图
diskCacheStrategy 磁盘缓存策略:
(1) DiskCacheStrategy.RESULT: 展示小大的图片缓存
(2) DiskCacheStrategy.ALL: 展示在控件中大小图片尺寸和原图都会缓存
(3) DiskCacheStrategy.NONE:不设置缓存
(4) DiskCacheStrategy.SOURCE:原图缓存
placeholder(R.drawable.loading): 目标从加载到展示时的控件的显示状态(多用网络加载动画)
error(R,drawable,error): 加载失败时,控件显示的图片。
into(ImageView): 展示的控件
Glide提供了一个downloadOnly() 接口来获取缓存的图片文件,但是前提必须要设置diskCacheStrategy方法的缓存策略为DiskCacheStrategy.ALL或者DiskCacheStrategy.SOURCE,还有downloadOnly()方法需要在线程里进行
1)在图片下载缓存好之后获取
Glide.with(mContext).load(url).asBitmap().into(new SimpleTarget() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
image.setImageBitmap(resource);
}
}); //方法中设置asBitmap可以设置回调类型
全面的方法: Glide.with(mContext).load(url).asBitmap().into(new Target<Bitmap>() {});
2)通过url获取
Bitmap myBitmap = Glide.with(applicationContext)
.load(yourUrl)
.asBitmap() //必须
.centerCrop()
.into(500, 500)
.get()
3)获取图片缓存路径
FutureTargetfuture = Glide.with(mContext)
.load("url")
.downloadOnly(500, 500);
try {
File cacheFile = future.get();
String path = cacheFile.getAbsolutePath();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
注意:这段代码需要在线程中执行