Предварительно угадать размер растрового изображения из фактического Uri, до масштабной загрузки

Если у вас есть 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) с типичными размерами камеры и т. Д. ОДНАКО, было бы лучшеугадать или узнать точно размер данных изображения в Uriи затем, используя эту информацию,разумно выбрать этот фактор.

Короче,как правильно выбрать этот масштабный коэффициент когда вы загружаете Uri?

Эксперты Android, это известная проблема, есть ли решение? Спасибо от ваших друзей iOS-> Android! :)

Ответы на вопрос(1)

Ваш ответ на вопрос