Pre-adivinar el tamaño de Bitmap del Uri real, antes de cargar la escala
Si tienes un Uri y necesitas elBitmap
teóricamente podrías hacer esto
Bitmap troublinglyLargeBmp =
MediaStore.Images.Media.getBitmap(
State.mainActivity.getContentResolver(), theUri );
pero se estrellará siempre
entonces haces esto .........
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() );
eso esfantástico Y es la solución de trabajo.
Observe el factor de "cuatro" que tiende a funcionar bien, en condiciones actuales (2014) con tamaños de cámara típicos, etc. SIN EMBARGO, sería mejoradivina o aprende exactamente el tamaño de los datos de la imagen en el Uri, y luego usando esa información,elegir inteligentemente ese factor.
En breve,cómo elegir correctamente ese factor de escala cuando cargas un Uri?
Expertos en Android, ¿es un problema bien conocido? ¿Hay alguna solución? Gracias de tus amigos iOS-> Android! :)