gpt4 book ai didi

android - 处理大型位图

转载 作者:IT老高 更新时间:2023-10-28 21:47:52 36 4
gpt4 key购买 nike

我有一堆图片网址。我必须下载这些图像并在我的应用程序中一一显示。我正在使用 SoftReferences 将图像保存在 Collection 中,并保存在 Sdcard 上,以避免重新获取并改善用户体验。

问题是我对位图的大小一无所知。事实证明,当我使用 BitmapFactory.decodeStream(InputStream) 方法时,我偶尔会收到 OutOfMemoryExceptions。因此,我选择使用 BitmapFactory 选项(样本大小 = 2)对图像进行下采样。这提供了更好的输出:没有 OOM,但这会影响较小图像的质量。

我应该如何处理这种情况?有没有办法选择性地只对高分辨率图像进行下采样?

最佳答案

BitmapFactory.Options 类(我忽略了一个)中有一个名为 inJustDecodeBounds 的选项,其 javadoc 内容为:

If set to true, the decoder will return null (no bitmap), but the out... fields will still be set, allowing the caller to query the bitmap without having to allocate the memory for its pixels.

我用它来找出位图的实际大小,然后选择使用 inSampleSize 选项对其进行下采样。这至少可以避免解码文件时出现任何 OOM 错误。

引用:
1. Handling larger Bitmaps
2. How do I get Bitmap info before I decode

关于android - 处理大型位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2220949/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com