我遇到问题.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
}
解码函数始终返回空值。而且从网上,我发现为了显示图像,Bitmap总是设置为ImageView。但我在这里所做的是将其存储到位图的 ArrayList 中,并稍后在画布中显示它。谁能告诉我解码后如何取回图像?
由此page http://developer.android.com/reference/android/graphics/BitmapFactory.html,它指出以下内容,
public static Bitmap decodeStream (InputStream is)
将输入流解码为位图。如果输入流为 null,或者无法用于解码位图,则该函数返回 null。流的位置将是读取编码数据后的位置。
参数:保存要解码为位图的原始数据的输入流。
Returns:解码后的位图,如果图像数据无法解码则为 null。”
这是否意味着即使我运行了几行代码来缓存图像,之前缓存的图像也不能用于解码它?
cacheMap.createNewFile();
fos = new FileOutputStream(cacheMap);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
有谁知道我的代码有什么问题吗?我已经解决这个问题好几天了,这让我发疯了!