我正在点击一个URL并将返回的图像响应保存在缓存目录中。如果我尝试从返回的响应输入流中保存位图,那么我得到正确的位图。现在将该响应输入流保存在缓存中并在获取之后我得到了空位图
将inputStream写入缓存目录 -
String root = mContext.getCacheDir().toString();
String path = root + "/tomorrow.jpg";
try {
final File file = new File(path);
final OutputStream output = new FileOutputStream(file);
try {
try {
final byte[] buffer = new byte[1024];
int ch;
while ((ch = in.read(buffer)) != -1)
output.write(buffer, 0, ch);
} finally {
output.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}catch(Exception e){
e.printStackTrace();
}
现在我正在从缓存目录中读取文件 -
FileInputStream fin = null;
try {
fin = new FileInputStream(new File(path));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Bitmap bmp1 = BitmapFactory.decodeStream(fin);
答案 0 :(得分:0)
我要感谢Dimitri Budiansky指导我。修复如下 -
//final byte[] buffer = new byte[1024];
//int ch;
//while ((ch = in.read(buffer)) != -1)
//output.write(buffer, 0, ch);
我评论过以上几行。只需添加以下行。
bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
澄清你可以查看this Link