我遇到了.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();
有谁知道我的代码出了什么问题?我已经解决了这个问题好几天了,让我发疯了!