0

像许多其他人一样,我有恼人的 VM 预算问题。我正在从 sdcard 中获取文件,并使用以下方法对其进行解码并对其进行压缩:

 BitmapFactory.Options options = new BitmapFactory.Options();
    options.inSampleSize = 1;

问题是我每次调用 onCreate 方法时都会得到位图。因此,在打开手机或启动活动几次后,它会崩溃。我能找到避免这种情况的唯一方法是:yourBitmap.recycle(),但您无法捕获回收的位图。

我需要一个表达式,即使它通常会在 VM 预算上崩溃,它仍然能够显示位图。我将位图显示为可绘制对象,因此经典的 unbindDrawables 独奏不起作用。我需要一个表达式,将 Bitmap 压缩到几乎没有,或者回收并显示一个相同大小的新 Bitmap。

4

1 回答 1

0

试试看这个:

http://developer.android.com/training/displaying-bitmaps/index.html

看着这个:

http://www.google.com/events/io/2011/sessions/memory-management-for-android-apps.html

另外,关于可绘制对象,请注意在不需要它们之后您没有对它们的任何引用。可绘制对象可能导致内存泄漏。

于 2012-05-13T11:03:40.620 回答