【问题标题】:Android OutOfMemory Error while loading Bitmaps加载位图时出现 Android OutOfMemory 错误
【发布时间】:2014-07-12 21:13:27
【问题描述】:

在应用程序中,我需要在创建时加载一些位图。 为了节省内存,我正在加载一个图像,通过创建一个 scaledBitmap 来重新缩放它,回收未缩放的 Bitmap 等等:

    bmpUnscaled = BitmapFactory.decodeResource(getResources(), R.drawable.cultivation_plant_resized_1);
      plant1 = Bitmap.createScaledBitmap(bmpUnscaled,(int) plant[0].getWidth(), (int) plant[0].getHeight(), true);
      bmpUnscaled.recycle();
    System.gc();
    bmpUnscaled = BitmapFactory.decodeResource(getResources(), R.drawable.cultivation_plant_resized_2);
      plant2 = Bitmap.createScaledBitmap(bmpUnscaled,(int) plant[0].getWidth(), (int) plant[0].getHeight(), true);
      bmpUnscaled.recycle();
    System.gc();

等等……

我正在做这 10 张图像,它们是相对于屏幕分辨率进行缩放的。 原始图像是 PNG(570x900(最大 660KB))

有没有人有一些想法来简单地节省内存? 我现在很绝望……

【问题讨论】:

  • 你为什么说max 660kb?您没有文件(例如PNG)和加载在内存中的位图之间的区别吗?该图像需要 2.5MB 的堆空间来加载(570 x 900 x 4 字节)

标签: android memory bitmap


【解决方案1】:

你读过:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html吗?

这篇文章包含有关使用 BitMap 的重要信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多