在使用ImageView显示位图时,为了释放资源并减少内存使用,我们需要手动回收使用的位图。
以下是可行的解决方案:
imageView.setImageBitmap(null);
if (imageView.getDrawable() != null) {
((BitmapDrawable) imageView.getDrawable()).getBitmap().recycle();
}
@Override
protected void onDestroy() {
super.onDestroy();
freeBitmapsFromImageViews();
}
private void freeBitmapsFromImageViews() {
for (int i = 0; i < mImageViewsList.size(); i++) {
ImageView imageView = mImageViewsList.get(i);
if (imageView.getDrawable() != null) {
((BitmapDrawable) imageView.getDrawable()).getBitmap().recycle();
}
}
}