Pre-adivinar el tamaño de Bitmap del Uri real, antes de cargar la escala

Si tienes un Uri y necesitas elBitmapteó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! :)

Respuestas a la pregunta(1)

Su respuesta a la pregunta