适用于Android的BitmapFactory解码功能

时间:2011-09-26 09:58:07

标签: android caching bitmap

我遇到了.decodeStream功能的问题。

File cacheMap = new File(context.getCacheDir(), "test.GIF");

if(cacheMap.exist()){
    FileInputStream is = new FileInputStream(cacheMap);
    Bitmap bitmap = BitmapFactory.decodeStream(is);
    puzzle.add(test);
}else{
 //retrieved from server and cache the image
}

decode函数始终返回null值。从互联网上,我发现为了显示图像,Bitmap总是设置为ImageView。但我在这里做的是将它存储到Bitmap的ArrayList中,稍后在Canvas中显示它。任何人都可以告诉我如何在解码后取回图像?

page开始,它说明了以下内容,

public static Bitmap decodeStream (InputStream is)

将输入流解码为位图。如果输入流为空,或者不能用于解码位图,则该函数返回null。流的位置将是读取编码数据后的位置。

参数:将要解码的原始数据保存到位图的输入流。

返回:已解码的位图,如果无法解码图像数据,则返回null。“

这是否意味着先前缓存的图像无法用于解码它,即使我已经运行了几行代码来缓存图像?

cacheMap.createNewFile();
fos = new FileOutputStream(cacheMap);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();       
fos.close(); 

有谁知道我的代码出了什么问题?我已经解决了这个问题好几天了,让我发疯了!

0 个答案:

没有答案