原来的项目中代码如下:
fun loadImage(context: Context, imageUrl: Any?, view: ImageView, type: Int) {
val myOptions = RequestOptions()
.transform(GlideRoundTransform(7))
Glide.with(context).load(imageUrl).apply(myOptions)
.diskCacheStrategy(DiskCacheStrategy.NONE).into(view)
println("圖片位址:$imageUrl")
}
运行发现图片占用内存达到140兆左右。
没有对图片做缩放的处理
做了缩放处理后,运行时图片占用内存,从140m,到40兆左右。
fun loadImage(context: Context, imageUrl: Any?, view: ImageView, type: Int) {
val myOptions = RequestOptions().override(300,300)
.transform(GlideRoundTransform(7))
Glide.with(context).load(imageUrl).apply(myOptions)
.diskCacheStrategy(DiskCacheStrategy.NONE).into(view)
println("圖片位址:$imageUrl")
}
后来反复测试,感觉是误判。目前尚不清楚,为什么图片占用内存,一次运行,全是140左右(偶先),之后多次,两种代码都是四十多。
并且,感觉as有bug,后面图片内存一直显示42.2没动过,大神知道是申请情况么。
image.png
glide使用硬盘缓存策略的配置。
磁盘缓存策略(diskCacheStrategy)
Glide磁盘缓存策略分为四种,默认的是AUTOMATIC 智能缓存
image.png
1.ALL:缓存原图(SOURCE) 和缩略图
实测:显示效果不理想,滑动不流畅。
2.NONE:什么都不缓存
实测:显示效果不理想,item图片很久才能看到。
3.SOURCE:只缓存原图(SOURCE)
实测:和All的感觉差不多。
4.智能
最流畅,内存比较高。
在Adapter中加载图片采用以上缓存策略。
网友评论