我正在创建一个简单的Gallery
drawable - 它们中的每一个几乎都是屏幕的大小,所以它们需要相当多的内存。对于每个条目,我正在为标题创建LinearLayout
和ImageView
的自定义TextView
。正如大多数人所知,android Gallery
不会回收视图,因此它会在低内存手机上轻松崩溃(在我的情况下,在16mb ram限制上加载4个drawable后)。
这是一个简单的问题 - 你如何实现这样的画廊,所以它不会耗尽内存?你如何回收这些图像?一个有效的代码示例很棒。
很少注意到:
inSampleSize不是一种方法,我无法缩小这些图像
调用从资源加载的Drawable上的recycle()是不可能的,因为它会在Android 4.0+上崩溃(它会在其内部缓存中回收drawable)
不要让我发布代码,因为没有。
答案 0 :(得分:2)
您不应该使用Gallery,因为它已被弃用。特别是因为到目前为止还没有编写任何代码。文档建议使用HorizontalScrollView或ViewPager。
我觉得ViewPager是您所寻找的,因为它只会在内存中保留最多3张图片并为您处理所有回收。这是一篇帖子,其中包含有关如何实施一个android viewPager implementation
的更多信息