我当前正在缩放位图,以避免使用offmemoryexception。有没有办法指定要解码的文件大小?因此,无论输入映像是什么文件大小,它都会缩放到指定的文件大小。
我正在使用http://androidbysravan.wordpress.com/category/outofmemory-exception-when-decoding-with-bitmapfactory/,直到我可以找出一种指定输出文件大小的方法,我正在使用以下代码。/p>
Bitmap bm = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 10;
AssetFileDescriptor fileDescriptor =null;
try {
fileDescriptor = _context.getContentResolver().openAssetFileDescriptor(selectedImage,"r");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
finally{
try {
bm = BitmapFactory.decodeFileDescriptor(fileDescriptor.getFileDescriptor(), null, options);
fileDescriptor.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return bm;
}
您解释的图像将以压缩格式(例如png,jpeg等)等。尽管您无法控制解码的图像的大小,但是您可以控制某些属性,使您可以使用BitmapFactory.Options
类有效地解码图像。
这是有关如何正确使用此类课程有效加载图像的出色官方指南:
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html