位图图像避免了大量图像视图的内存不足

时间:2012-07-03 16:22:16

标签: android image memory

我认为,标题是如此具体。所以,我想首先解释一下,我想创建一个邮票应用程序(如photobox),我们可以在照片上放置大量的邮票图像,保存图像和设计。

我现在在我的代码中使用option.inSampleSize。更有可能是这个链接:Strange out of memory issue while loading an image to a Bitmap object

当图像编号很小时,这解决了我的问题。但是当图像编号(图像计数)变得更大时,内存再次存在。

这里的专家有什么想法吗?目前我仍在使用ImageView来显示图章。

或..也许这个没有解决方案呢?我唯一想到的就是限制图像的数量。

1 个答案:

答案 0 :(得分:0)

您是否按照Google教程进行图像缓存?它概述了陷阱,并向您展示如何正确缓存图像,以便您不会超出内存预算。

Android Developer: Displaying Bitmaps - Cache Bitmap

关键线是

// Get memory class of this device, exceeding this amount will throw an
// OutOfMemory exception.
final int memClass = ((ActivityManager) context.getSystemService(
        Context.ACTIVITY_SERVICE)).getMemoryClass();

// Use 1/8th of the available memory for this memory cache.
final int cacheSize = 1024 * 1024 * memClass / 8;

mMemoryCache = new LruCache(cacheSize) {
    @Override
    protected int sizeOf(String key, Bitmap bitmap) {
        // The cache size will be measured in bytes rather than number of items.
        return bitmap.getByteCount();
    }
};