美文网首页
glide的特别用法(展示gif,通过url获取Bitmap)

glide的特别用法(展示gif,通过url获取Bitmap)

作者: coogle88 | 来源:发表于2018-05-10 11:52 被阅读0次

Glide的普通使用,Glide.with(Context).load(ImgUrl).into(ImageView),Context是该界面的上下文,ImgUrl是网络图片路径,ImageView需要加载到的图片控件

Glide.with(Context).load(ImgUrl).diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).into(ImageView)

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默认情况下是缓存到内存中的

相关文章

网友评论

      本文标题:glide的特别用法(展示gif,通过url获取Bitmap)

      本文链接:https://www.haomeiwen.com/subject/nogmrftx.html