关于Glide加载图片模糊
需求:
1.整张界面展示大图,可缩放。
2.在无网络情况下,展示缓存图片;
3.大图要清晰。
1.缩放控件可以直接从网络上找,遍地的自定义view。由于项目里面用的有环信,所以直接用环信里自带的EasePhotoView
了。
2.通过详情点击进入大图展示。详情页面加载图片时使用:
Glide.with(mContext)
.load(airScapeBean.getImage())
.asBitmap()
...此处有个监听,就不展示了
.skipMemoryCache(false)
.transform(cornerTransform)//圆角处理
.diskCacheStrategy(DiskCacheStrategy.ALL) //缓存所有数据
.into(iv_img);
比较关键的是.diskCacheStrategy(DiskCacheStrategy.ALL)
在大图展示页面也缓存所有数据,如果对glide缓存不理解的话,请自行百度吧…
下面是大图展示代码:
Glide.with(mContext)
.load(imgUrlStr)
.asBitmap()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
//如果去掉此行,在详情页加载出来后无网络,此图不会被加载(glide缓存机制)
.into(image);
3.关于大图不清晰的问题,我是这样理解的:
由于我的控件是存在缩放的,而为了让图片居中并且完美展示,使用了
android:scaleType="fitCenter"
但是,如果没有加.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
这行代码的话,glide加载的图片并不是按照原图加载的,而是按照缩略图加载的,然后我将缩略图进行放大,就会出现模糊。
但是如果我加载时候,指定加载原图大小,这样就相当于是。。。。。解释不了了。。。。
反正解决了吧,哈哈哈哈