如果您有一个 Uri 并且需要 Bitmap
,理论上您可以这样做。
Bitmap troublinglyLargeBmp =
MediaStore.Images.Media.getBitmap(
State.mainActivity.getContentResolver(), theUri );
但是它每次都会崩溃,
所以你需要这样做……
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
AssetFileDescriptor fileDescriptor =null;
fileDescriptor =
State.mainActivity.getContentResolver().openAssetFileDescriptor( theUri, "r");
Bitmap actuallyUsableBitmap
= BitmapFactory.decodeFileDescriptor(
fileDescriptor.getFileDescriptor(), null, options);
Utils.Log("'4-sample' method bitmap ... "
+actuallyUsableBitmap.getWidth() +" "
+actuallyUsableBitmap.getHeight() );
那太棒了,这是可行的解决方案。
请注意"four"因子在目前条件下(2014年)与 typlical 相机大小等相匹配。然而,最好是猜测或学习 at theUri 中图像数据的确切大小,然后使用该信息智能选择该因子。
简而言之,如何正确选择加载 Uri 时的比例因子?
Android 专家们,这是一个众所周知的问题吗?有没有解决方案?感谢你们来自 iOS->Android 的朋友!:)