Android uygulamasında yetersiz bellek, bitmap'i düzgün bir şekilde kullanmazsak çok yaygındır, sorunun çözümü
if(imageBitmap != null) {
imageBitmap.recycle();
imageBitmap = null;
}
System.gc();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 3;
imageBitmap = BitmapFactory.decodeFile(URI, options);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(imageBitmap, 200, 200, true);
imageView.setImageBitmap(scaledBitmap);
Yukarıdaki kodda Bitmap'i geri dönüştürmeyi denedim, bu da kullanılan bellek alanını boşaltmanıza izin verecek, bu nedenle bellek yetersiz olabilir.
Hala sorunla karşı karşıyaysanız, bu satırı da ekleyebilirsiniz.
BitmapFactory.Options options = new BitmapFactory.Options();
options.inTempStorage = new byte[16*1024];
options.inPurgeable = true;
daha fazla bilgi için bu bağlantıya bir göz atın
https://web.archive.org/web/20140514092802/http://voices.yahoo.com/android-virtual-machine-vm-out-memory-error-7342266.html?cat=59
NOT: nedeniyle gc gerçekleştirerek kaynaklanan anlık "duraklama" için, bu olup değil önce bunu tavsiye her bitmap tahsisi.
Optimum tasarım:
Free artık gerekli olmayan tüm bitmapler tarafından, if / recycle / null
gösterilen kod. (Buna yardımcı olacak bir yöntem yapın.)
System.gc();
Yeni bit eşlemleri ayırın.