Glide OOM处理

引入largeHeap属性
禁用Glide内存缓存
自定义GlideModule
asDrawable代替asBitmap
imageView的scaleType属性
是否使用全局变量

引入largeHeap属性

让系统为App分配更多的独立内存。

<application
        android:largeHeap="true">
</application>

禁用Glide内存缓存

Glide.with(this)
                .load("")
                .skipMemoryCache(true)//禁用内存缓存
                .into();

自定义GlideModule

设置MemoryCache和BitmapPool大小
在另一篇文章有写怎么配置:Glide简单使用

asDrawable代替asBitmap

级到Glide4.0,asDrawable代替asBitmap,drawable更省内存

 Glide.with(this)
                .asDrawable()
                .load("")
                .into(img);

imageView的scaleType属性

ImageView的scaleType为fitXY时,改为fitCenter/centerCrop/fitStart/fitEnd显示。

是否使用全局变量

  1. 不使用application作为context。当context为application时,会把imageView是生命周期延长到整个运行过程中,imageView不能被回收,从而造成OOM异常
  2. 使用application作为context。但是对ImageView使用弱引用或软引用,尽量使用SoftReference,当内存不足时,将及时回收无用的ImageView。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章