【发布时间】:2011-10-26 15:02:32
【问题描述】:
我想在 Android 中加载图片,但如果图片太大,我想在加载之前调整其大小。我了解到可以使用 BitmapFactory 来获取图像的大小,然后可以找出适当的缩放因子并使用 BitmapFactory 加载具有所需尺寸的图像(根据我发现的非常有能力的建议 in this related thread)。
所以我尝试了它,但它拒绝工作。我花了最后一个小时挑选代码,试图弄清楚为什么这么简单的操作没有任何效果(缩放因子被完全忽略了!)
然后我偶然发现了Android issue 3072... 事实证明,这已被确定为 GIF 文件损坏了两年多。我意识到 GIF 并不完全是现代的,但它仍然存在并且被广泛使用(我的测试集有很多,这就是为什么在我发现错误报告之前它似乎一直被破坏)。
我的问题是,我可以使用什么来替代 BitmapFactory,当使用缩放因子而不默默忽略它时,它可以正确读取和调整 GIF 文件的大小? 内存限制会阻止直接加载大图像进行进一步处理,因此这需要是一个流式解决方案。
我的另一个问题是,有多少其他人遇到了像这样的旧的、未修复的错误,或者没有意识到,或者更糟的是,依靠 API 来准确执行请求的功能并最终导致内存泄漏和其他奇怪的意外?
【问题讨论】:
-
我想知道你是否发现了什么。在你发帖 1.5 年后,这个问题仍然没有解决......
-
我怀疑人们只是围绕它写作。真是太糟糕了....这个错误没有修复,我从那个需要开始。
标签: android gif bitmapfactory