Вот правильный способ сделать это:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK)
{
Uri imageUri = data.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
}
}
Если вам необходимо загрузить очень большие изображения, следующий код загрузит его в черепице (избегая больших выделения памяти):
BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(myStream, false);
Bitmap region = decoder.decodeRegion(new Rect(10, 10, 50, 50), null);
Смотрите ответ here
Вы должны обновить принятый ответ на этот пост, поскольку есть лучшие ответы, чем мои. –
[второй ответ] (https://stackoverflow.com/a/4717740/2835520) является правильным, [третий ответ] (https://stackoverflow.com/a/6228188/2835520) является более полным. – IgniteCoders