Я столкнулся со многими вопросами в stackoverflow относительно этой ошибки, но ни один из них не нашел правильного решения для моего сценария.
В моем приложении для Android я должен разрешить пользователю нажимать кнопку, чтобы открыть галерею и выбрать изображение. А затем нужно загрузить это конкретное выбранное изображение в ImageView в моем макете (UI).
Делать это вполне нормально. Ниже приведен код, который я использую для достижения этой цели.
В кнопке Загрузить нажмите ->
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), REQUEST_UPLOAD_IMG);
А затем onActivityResult ->
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
//super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK)
{
if(requestCode==REQUEST_UPLOAD_IMG)
{
Uri selectedImageURI = data.getData();
uploadImgVW.setImageURI(selectedImageURI);
}
else
{
Toast.makeText(MainActivity.this, "You can only select an Image.", Toast.LENGTH_LONG).show();
}
}
}
Но если пользователь выбирает изображение большего размера (например, 2 МБ), приложение завершает работу со следующей ошибкой. Но с нормальными (уровень КБ) изображениями все в порядке, и мне интересно, что я могу сделать для этой проблемы (чтобы справиться с этой ошибкой). Спасибо...
Ошибка ->
06-20 16:43:58.445: E/AndroidRuntime(2075): FATAL EXCEPTION: main
06-20 16:43:58.445: E/AndroidRuntime(2075): java.lang.OutOfMemoryError: bitmap size exceeds VM budget