我想在Android中加载图像,但如果图像太大,我想在加载之前调整它的大小。我了解到可以使用BitmapFactory来获取图像的大小,然后可以计算出适当的缩放因子并使用BitmapFactory加载所需尺寸的图像(根据我发现的in this related thread非常称职的建议)。
我花了一个小时仔细检查代码,试图弄清楚为什么这么简单的操作没有任何效果(比例因子被完全忽略了!)
然后我偶然发现了Android issue 3072......原来这已经被确定为GIF文件的故障超过两年了。我意识到GIF并不完全是现代的,但它仍然在那里并被广泛使用(我的测试集有很多,这就是为什么它看起来都是坏的,直到我发现那个bug报告)。
**我的问题是,我可以使用什么作为BitmapFactory的替代品,当采用缩放因子时,可以正确读取和调整GIF文件的大小,而不会默默忽略它?**内存限制阻止直接加载大图像以进行进一步处理,因此这需要一个流解决方案。
我的另一个问题是,有多少人遇到了像这样的老的、未修复的bug,要么没有意识到,要么更糟,依赖API来准确地执行所请求的功能,最终导致内存泄漏和其他奇怪的意外?
1条答案
按热度按时间des4xlb01#
我最终使用了发布的解决方案here。
其中
scaleDown
为:如所使用的here。