Если у вас есть 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!:)