Glide的普通使用,Glide.with(Context).load(ImgUrl).into(ImageView),Context是该界面的上下文,ImgUrl是网络图片路径,ImageView需要加载到的图片控件
<pre>Glide.with(Context).load(ImgUrl).diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).into(ImageView)
# RUNOOB Markdown Test
## Hello World!
Context是该界面的上下文,ImgUrl是网络图片路径,ImageView需要加载到的图片控件,
diskCacheStrategy从字面上看是磁盘缓存策略,DiskCacheStrategy是个枚举类,源码中有
/** Caches with both {@link #SOURCE} and {@link #RESULT}. */缓存了原始图片和处理后的图片数据
ALL(true,true),
/** Saves no data to cache. */不往磁盘上存储数据
NONE(false,false),
/** Saves just the original data to cache. */仅仅保存原始图片的大小到磁盘上
SOURCE(true,false),
/** Saves the media item after all transformations to cache. */保存处理后的图片的大小到磁盘上
RESULT(false,true);
如果你一个不断变化的图片,用的图片是同一个url的话,应该选择DiskCacheStrategy.NONE这样才能达到你想要的效果,控件上的图片才会不断变化
如果你经常需要对图片进行处理,获取不同版本的图片,这种场景DiskCacheStrategy.SOURCE更合适,缓存图片的原始尺寸进行处理
skipMemoryCache(true)从名称上可以看出了跳过内存缓存,默认是false()即是不跳过,先从内存缓存中获取,当设置为true的时候,不从内存上获取数据
diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true) 这种设置就同时禁止往磁盘和内存中缓存数据,适用于图片不断变化的场景
以上仅仅只是网络的图片,如果遇到本地图片、动态图片的加载,如何加载图片资源呢?
如果Android中res下的资源,直接用资源id就可以了,我们以展示gif图片资源为例
Glide.with(Context).load(R.drawable.tmpgif).asGif().into(ImageView) asGif()以gif来展示,动态图片效果,默认情况下是asBitmap()来加载,如果是动态图片资源的话,默认会加载第一帧图片来显示
如果是需要加载本地资源的话,我们可以采用下面的这种方式:File file=newFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"tmp.jpg")Glide.with(Context).load(file).into(ImageView),Context是该界面的上下文,ImgUrl是网络图片路径,ImageView需要加载到的图片控件
如果你需要用Bitmap类型的图片资源,
Glide.with(Context).load(ImgUrl).asBitmap().diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(false).into(new SimpleTarget() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
}
});
这里的resource就会获取到你想要的Bitmap类型的资源,比如QQ图片分享场景场景中可以这样使用,skipMemoryCache(false)可以不用加的,因为Glide默认情况下是缓存到内存中的