Причина этого происходит из-за того, что вы устанавливаете огромные снимки на ваш ImageView
до тех пор, пока у вас не закончится память.
Что вы должны сделать, это создать миниатюру этой фотографии и применить ее к ImageView
. и показать полное изображение только тогда, когда на него щелкнул или не покажет его ImageView
.
вы могли бы использовать этот метод, чтобы получить эскиз изображения из файла, но вы должны сохранить изображение первого на устройстве в файл объекта:
public static Bitmap decodeSampledBitmapFromFile(String path,
int reqWidth, int reqHeight) { // BEST QUALITY MATCH
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
// Calculate inSampleSize
// Raw height and width of image
final int height = options.outHeight;
final int width = options.outWidth;
options.inPreferredConfig = Bitmap.Config.RGB_565;
int inSampleSize = 1;
if (height > reqHeight) {
inSampleSize = Math.round((float)height/(float)reqHeight);
}
int expectedWidth = width/inSampleSize;
if (expectedWidth > reqWidth) {
//if(Math.round((float)width/(float)reqWidth) > inSampleSize) // If bigger SampSize..
inSampleSize = Math.round((float)width/(float)reqWidth);
}
options.inSampleSize = inSampleSize;
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(path, options);
}
@downvoter, в чем ошибка в этом вопросе? –