我使用以下方法将位图的大小从任何原始大小减小到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);
}