在哪里放置bitmap.recycle()以减少内存不足问题

时间:2012-12-10 11:40:47

标签: android bitmap out-of-memory bitmapfactory

我使用以下方法将位图的大小从任何原始大小减小到200dp X 200dp。这应该可以防止由于内存不足而导致崩溃,如果我没有减少位图的大小,就会发生这种情况。但是,即使在使用BitmapFactory.opitons减小位图的大小后,我仍然会遇到内存不足的问题。

有人建议我使用bitmap.recycle();我之前从未使用过这个,我有点困惑,因为logcat的位置告诉我内存正在发生。

logcat告诉我在这里返回位图的方法的return语句中的图像缩减方法中发生了内存问题:

  return BitmapFactory.decodeFile(fileName, options);

那么我会在这个代码中调用bitmap.recycle()?

这是整个方法的代码:

   public static Bitmap decodeSampledBitmapFromResource(String fileName, int reqWidth, int reqHeight) {

    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(fileName, options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);

    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;

       // logCat says running out of memory here on the return statement
    return BitmapFactory.decodeFile(fileName, options);


}

0 个答案:

没有答案