学习了一个晚上,用WeakHashMap整理WeakRefrence<BitMap>, 然后在同一次adapter渲染,每个bitmap只要生成一次.并且在内存不足的时候,弱引用释放,很快内存被回收.
除了弱引用加快回收,下面是手动回收,在该adapter所在的activitydestroy的时候,清除一个bitmap的示例:
void clear(Map<String, WeakReference<Bitmap>> bitmaps) {
if (bitmaps == null && bitmaps.isEmpty()) {
return;
}
for (Map.Entry<String, WeakReference<Bitmap>> entry : bitmaps.entrySet()) {
Bitmap b = entry.getValue().get();
if (b != null && !b.isRecycled()) {
b.recycle();
}
b = null;
}
bitmaps.clear();
}