我正在尝试更新设置活动中的用户个人资料照片。在此期间,我也想更新外部存储中的照片。
if (checkExternalStorage()) {
File filePath = context.getExternalCacheDir();
File myDir = new File(filePath.getAbsolutePath() + path);
myDir.mkdirs();
File file = new File(myDir, fileName);
if (file.exists()) file.delete();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
Log.d(TAG, "File at path " + myDir.getAbsolutePath() + " was saved");
} catch (Exception e) {
Log.e(TAG, "Unsuccessful storing image in SD card " + e.getMessage());
}
}
我已将照片成功保存在外部存储设备中。之后,我想通过在生命周期onResume中调用的这行代码更新导航抽屉中的个人资料照片。
File filePath = getExternalCacheDir();
File myDir = new File(filePath.getAbsolutePath() + STORAGE_IMAGES_PATH + STORAGE_MY_PROFILE_PHOTO);
if (ImageUtils.checkExternalStorage() && myDir.exists()) {
Picasso.with(this).load(myDir).into(profilePhoto);
}
但导航抽屉中的照片仅在我重新启动应用程序时更新。如果我在设备上打开包含已保存图像的文件夹,则照片是最新的您知道它可能出现问题吗?
答案 0 :(得分:0)
我用这行代码解决了。
File filePath = getExternalCacheDir();
File myDir = new File(filePath.getAbsolutePath() + STORAGE_IMAGES_PATH + STORAGE_MY_PROFILE_PHOTO);
Picasso.with(this).invalidate(myDir);