Android 位图保存错误。保存图像错误,将图像保存到 sd 卡后更新图库
Android bitmap saving error. saving image is wrong , update gallery after saving image to sd card
我创建了一个函数来保存从 gallery.I 中选择的图像,意识到第一次保存图像时它是 ok.But 如果再次启动该过程,图像似乎是已保存(同名)但图像在 explorer.It 中没有改变,只是保持旧位图 image.I 在两个不同的设备上测试,但在 Infinix hot 7 上相同 result.Actually 但是同样的结果。
public static String saveImage(Bitmap bitmap, File[] folders, File file, Context context) {
for (File folder:folders) {
if (!folder.exists()) {
folder.mkdirs();
}
}
if (file.exists ()) {
file.delete();
}
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
try {
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
你可以看到我选择了一张绿色自然的照片,但它注册了一张古老的红树照片
将图像保存到图库中后,您应该将图像更新到图库和文件浏览器的系统
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(myNewFile)));
我创建了一个函数来保存从 gallery.I 中选择的图像,意识到第一次保存图像时它是 ok.But 如果再次启动该过程,图像似乎是已保存(同名)但图像在 explorer.It 中没有改变,只是保持旧位图 image.I 在两个不同的设备上测试,但在 Infinix hot 7 上相同 result.Actually 但是同样的结果。
public static String saveImage(Bitmap bitmap, File[] folders, File file, Context context) {
for (File folder:folders) {
if (!folder.exists()) {
folder.mkdirs();
}
}
if (file.exists ()) {
file.delete();
}
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
try {
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
你可以看到我选择了一张绿色自然的照片,但它注册了一张古老的红树照片
将图像保存到图库中后,您应该将图像更新到图库和文件浏览器的系统
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(myNewFile)));