假设我的代码类似于下面的代码:
protected void onCreate(Bundle bundle){
this.imageView = (ImageView) contentView.findViewById(R.id.imageView);
this.setFirstBitmap();
this.setSecondBitmap();
}
private setFirstBitmap(){
Bitmap bitmap1 = BitmapFactory.decodeFile(bitmapFile1);
imageView.setImageBitmap(bitmap1);
}
private setSecondBitmap(){
Bitmap bitmap2 = BitmapFactory.decodeFile(bitmapFile2);
imageView.setImageBitmap(bitmap2);
}
在这种情况下,imageView 会回收 bitmap1 还是我必须在设置 bitmap2 之前回收?
最佳答案
ImageView 不会自动释放位图
正如@Vipul 所解释的那样
必须通过调用 bitmap.recycle()
释放位图引用
当你想将另一个位图分配给 ImageView 时,调用
((BitmapDrawable)imageView.getDrawable()).getBitmap().recycle();
看看this
关于android - ImageView.setImageBitmap() 是否回收之前设置的位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22448380/