У меня большая проблема с функцией выбора картинки в телефоне галереи! Я выбрал фотографию, я получил URI, и когда я прочитал поток в «onActivityResult» для помещения потока в растровое изображение, у меня возникла ошибка «outoffmemoryerror».

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
       Uri uri = data.getData();
       InputStream is = getContentResolver().openInputStream(mSelectedUri);
       Bitmap bitmap = BitmapFactory.decodeStream(is);
}

Я пробовал другой код, но у меня такая же проблема. Ну как по картинке!

Я нашел это: http://developer.android.com/training/displaying-bitmaps/index.html А также http://developer.android.com/training/displaying-bitmaps/load -bitmap.html

Со следующим: «Чтобы избежать исключений java.lang.OutOfMemory, проверьте размеры растрового изображения перед его декодированием, если только вы не полностью доверяете источнику предоставить вам данные изображения предсказуемого размера, которые удобно помещаются в доступной памяти».

2
VincentLamoute 20 Дек 2012 в 18:07
Позже по последней ссылке, которую вы предоставили, есть образец кода.
 – 
harism
20 Дек 2012 в 18:13
Я попробовал! Но не работай! Или я не понимаю!
 – 
VincentLamoute
20 Дек 2012 в 18:16

1 ответ

Лучший ответ

Иногда изображения слишком велики для растровых изображений, поэтому способ получить Растровое изображение - уменьшить изображение. Этот сайт является хорошим примером, и он мне очень понравился.

http://twigstechtips.blogspot.com/2011/10/android-resize-bitmap-image- while.html

2
Opiatefuchs 20 Дек 2012 в 19:04
БЛАГОДАРНОСТЬ ! В самом деле ! Думаю, это работа! У меня есть juste изменить функцию, чтобы взять параметр Uri и открыть Inputstream (а не FileInputStream). Просто измените значение на InputStream is = getContentResolver (). OpenInputStream (uri); РЕАЛЬНОЕ СПАСИБО! Тебе понравится мой день!
 – 
VincentLamoute
20 Дек 2012 в 19:00