Android BitmapDrawable回收/重用

时间:2012-12-30 16:06:50

标签: android bitmap

在下面的代码中,我有两个位图(我省略了创建它们的代码,因为它与我的问题无关)而且我的布局中也有一个ImageView。我让ImageView显示第一个位图作为drawable,然后让它显示第二个位图,再次作为drawable。

我知道位图可以回收,我的问题与"新的BitmapDrawable"部分,因为我无法弄清楚BitmapDrawable到底是什么。它只是一个引用,还是每次创建时都会耗尽内存?换句话说,在为bitmap2创建另一个BitmapDrawable之前,我为bitmap1创建的BitmapDrawable是否需要删除/回收?

感谢。

Bitmap bitmap1,bitmap2;

...assume bitmap1 and bitmap2 contain valid bitmaps...

// get imageview
ImageView iv = (ImageView)findViewById(R.id.my_imageview);

// make the imageview display bitmap1
iv.setImageDrawable(new BitmapDrawable(getResources(),bitmap1));        

// now make the imageview display bitmap2
iv.setImageDrawable(new BitmapDrawable(getResources(),bitmap2));        

1 个答案:

答案 0 :(得分:1)

只要你需要它们,你应该保留位图。创建新位图的成本很高。如果没有足够的内存,GC将会触发,你的应用程序将停止运行。

有效显示位图,请参阅此内容 http://developer.android.com/training/displaying-bitmaps/index.html