android - Android 中的图像内存管理

标签 android image memory

这是初学者问得最多的问题之一,但不幸的是我仍然得不到任何帮助。在一个 Activity 中,我有一个 viewflipper,我以编程方式为其分配带有图像的 ImageView (使用 for 循环将大约 100 张图像添加到 viewflipper)。可能是由于图像大小或图像数量过多导致位图出现 OutOfMemory 错误。我的问题是:

  1. 如果这是因为我的可绘制对象占用了内存空间,有什么办法可以释放它们占用的空间?
  2. 垃圾收集会是造成这种情况的原因吗?如果是,解决方案是什么?
  3. 由于我使用的是 viewflipper,有什么方法可以让我只能加载 viewflipper 的当前 View 、上一个 View 和下一个 View ?这会有助于减少内存占用吗?

如果我的问题令人困惑或难以理解,请告诉我。这对我来说是一个重要的话题,因为我几乎所有的应用程序都面临这个问题。

最佳答案

为了避免,在 list 中使用这个获取大堆:

android:largeHeap="true"

几乎所有问题的解决方案都在这些与内存错误相关的链接上,希望其中之一可以解决您的问题:

meomry-out-of-error

Memory Leak and Out of memory Error using List,LinkedList and HashMap

Memory Leak and Out of memory Error using LRU Cache

Memory Leak and Out of memory Error using Disk LRU Cache

关于android - Android 中的图像内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19264819/

相关文章:

java - cookiemanager 中的 setcookie 不适用于 Android

android - 企业android开发用什么

PHP/GD ImageSaveAlpha 和 ImageAlphaBlending

java - Docker run -m 没有设置限制(JVM 为 xms 和 xmx 占用了整个主机的大小)

c# - C# 中的 FlowDocument 内存问题

android - react native 系统声音/铃声

java - 在 Eclipse 上将 java 项目转换为 android 项目

c++ - 图像存储在程序中的什么位置?

javascript - 添加外部 jQuery 链接后 HTML 上的图像消失

c# - Process.GetProcessesByName(String, String) 内存泄漏