java - android位图中的内存不足错误

标签 java android bitmap out-of-memory

我正在使用位图。它抛出内存不足错误(5 次中有 2 次)。 怎么避免呢。

以下是我的代码:

  bitmap = android.provider.MediaStore.Images.Media.getBitmap(cr, imageUri);
  photo_new= rotateImage(bitmap, 90);
  ByteArrayOutputStream stream = new ByteArrayOutputStream();

  photo_new.compress(Bitmap.CompressFormat.JPEG, 100, stream);
  byte[] byteArray = stream.toByteArray();

  Intent i = new Intent(getApplicationContext(),new_class.class);
  i.putExtra("image", byteArray);

  startActivity(i);
  byteArray=null;

最佳答案

你得到 OutOfMemoryError因为你没有回收 您使用的那些位图

尝试回收那些位图在你使用它们之后

bitmap = android.provider.MediaStore.Images.Media.getBitmap(cr, imageUri);
  photo_new= rotateImage(bitmap, 90);
  ByteArrayOutputStream stream = new ByteArrayOutputStream();

  photo_new.compress(Bitmap.CompressFormat.JPEG, 100, stream);
  byte[] byteArray = stream.toByteArray();
  bitmap.recycle();
  Intent i = new Intent(getApplicationContext(),new_class.class);
  i.putExtra("image", byteArray);

  startActivity(i);
  byteArray=null;

关于java - android位图中的内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24203985/

相关文章:

java - 如何将 Java import 转换为 C# using 语句

android - 从 onResume 的最后位置恢复 MediaPlayer

从 SQLite 数据库中检索时,Android Image 不会更改

java - "bitmap size exceeds 32bits"在 KitKat 设备上的 buildDrawingCache

python - 将 PIL 图像转换为 wxPython 位图图像

java - 如何从各种视频文件格式中提取元数据?

java - fragment 不会在 Activity 中显示

android - 如何为 tabhost 和 tabwidget 创建自定义 api?

java - 如何在不同模式中进行迁移?

java - 如何拥有一个由数组 : Java? 索引的数组