我正在尝试在某些设备中从文件加载位图图像,我的代码工作正常,但在另一台设备上,它会提供OutOfMemory异常。
String filePath = mediaCursor.getString(mediaCursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA));
fileName.add(filePath);
File file = new File(filePath);
Bitmap myBitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
bitmapArray.add(myBitmap);
答案 0 :(得分:0)
您可以找到位图的大小:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file.getAbsolutePath(), options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
然后通过设置sampleSize:
将其压缩到所需的大小options = new BitmapFactory.Options();
options.inSampleSize = desired_scale_value;
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
并且不要忘记在非ui线程中加载位图。