Android 使用Glide加载位图时,谁负责回收?
我正在使用Glide加载位图以创建gifAndroid 使用Glide加载位图时,谁负责回收?,android,android-bitmap,android-glide,Android,Android Bitmap,Android Glide,我正在使用Glide加载位图以创建gif for (int i = 0, count = files.size(); i < count; i++) { Bitmap img = Glide.with(context) .load(files.get(i)) .asBitmap() .centerCrop() .into(GIF_EXPORT_SIZE / 2
for (int i = 0, count = files.size(); i < count; i++) {
Bitmap img = Glide.with(context)
.load(files.get(i))
.asBitmap()
.centerCrop()
.into(GIF_EXPORT_SIZE / 2, GIF_EXPORT_SIZE / 2)
.get();
// addFrame creates a copy of img, so we can re-use this bitmap
encoder.addFrame(img);
}
for(int i=0,count=files.size();i
我想知道是谁负责回收这个位图,还是把它放回Glide位图池?Glide似乎没有办法自动或通过使用clear()
重新使用它
我考虑过直接使用Glide.get(context.getBitmapPool().put(img)之类的东西将位图添加回池中,但根据文档,直接使用位图池可能会导致未定义的行为。根据他们的wiki,你不必回收,因为Glide会这样做,而是基于资源计数
当引用计数降至零时,Glide将回收资源并将其内容返回到任何可用池
不过,您必须显式调用Glide.clear()以减少资源计数,因为Glide只能在替换现有目标/视图的映像时调用Glide.clear()。希望这有帮助