我尝试将缓存建议保存到本地存储中。
保存部分完成如下:
Bitmap bmp = ImagesHelper.loadBitmap(url, 3); //here the image is downloaded from web
String fname = item.getItemID() + ".png"; //item is my object
if(fname != null){
try {
FileOutputStream fos = context.openFileOutput(fname, Context.MODE_PRIVATE);
bmp.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
此方法有效,不会抛出任何异常。 现在不工作的部分是卡明,来自本地存储的加载图像:
String fname = item.getItemID() + ".png"; //item is my object
if(file.exists()){
try {
Bitmap cacheImg = BitmapFactory.decodeFile(file.getAbsolutePath());
return cacheImg;
}
catch(Exception ex){
Log.e(Constants.TAG, "Error loading cache image", ex);
}
}
此代码始终异常 - 文件存在,但无法加载图像。
错误在哪里?这是将文件保存/加载到本地存储的正确方法吗?