BitmapFactory.decodeStream偶尔返回null

时间:2012-05-22 08:04:31

标签: android

我遇到了以下问题。我的资产文件夹中有大图像。当用户首次打开应用程序时,我会为其设备优化这些图像并将其缓存到SD。

我使用以下命令从资产打开文件:

stream = getResources().getAssets().open("assetName");

我将其包装在BufferedInputStream

BufferedInputStream bis = new BufferedInputStream(stream, BUFFER_SIZE);

然后我只用BitmapFactory解码图像并用结果做所有的事情。好吧,我实际上习惯将inSampleSize传递给更小的设备,但之后我选择存储半尺寸版本的图像以及fullsize,因为它大大提高了图像解码速度(我怀疑是由于IO操作)。

我遇到的问题是我收到BitmapFactory.decodeStream为它们返回null的异常(很少见,但仍然存在)。我不明白为什么。我的报告来自Android 4.0.3 galaxy note用户,它足够强大,可以显着保留大约4 Mb的图像数据。所以我怀疑这是OOM,还是“执行虚拟机预算”。如果缺少资产,getAssets().open(...)可能会抛出异常。

那么什么?有没有人遇到类似的问题?

感谢。

0 个答案:

没有答案