与许多其他人一样,我有一个令人讨厌的虚拟机预算问题。我从sdcard获取文件并对其进行解码并使用以下方法对其进行编译:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
问题是我每次调用onCreate方法时都会得到位图。因此,在打开电话或开始活动几次后,它会崩溃。我可以找到避免这种情况的唯一方法是:yourBitmap.recycle()
,但是你无法捕获回收的Bitmap。
我需要一个表达式,即使在VM预算正常崩溃之后仍然能够显示位图。我将位图显示为drawable,因此经典的unbindDrawables solotion不起作用。我需要一个表达式,eighter将Bitmap简化为几乎没有,或者回收并显示相同大小的新Bitmap。
答案 0 :(得分:0)
尝试阅读:
http://developer.android.com/training/displaying-bitmaps/index.html
并且看着这个:
http://www.google.com/events/io/2011/sessions/memory-management-for-android-apps.html
另外,关于drawables,看到在不需要它们之后你没有任何引用它们。 drawables可能导致内存泄漏。