【发布时间】:2014-07-30 21:19:37
【问题描述】:
如果你有 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() );
这太棒了并且是有效的解决方案。
请注意在当前条件下(2014 年)具有典型相机尺寸等的“四”因素往往效果很好。但是,最好猜测或准确了解图像数据的大小theUri,然后使用该信息,智能选择该因素。
简而言之,如何在加载 Uri 时正确选择比例因子?
Android专家,这是一个众所周知的问题,有解决方案吗?感谢您的 iOS->Android 朋友! :)
【问题讨论】:
标签: android android-camera bitmapfactory