保存Bitmap 到存储卡(SD卡) 并通知文件管理器 更新
private void saveImage(Bitmap bitmap) {
//此处范围的所谓外部存储是手机的自带内存32G,64G,并不是SD卡,是否有访问权限
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File newFileDir = new File(Environment.getExternalStorageDirectory(), "Download");
if (!newFileDir.exists()) {
newFileDir.mkdir();
}
String fileName = System.currentTimeMillis() + ".png";
File file = new File(newFileDir, fileName);
//打开文件输出流
FileOutputStream os = null;
try {
os = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
os.flush();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// // 保存到图库
// try {
// MediaStore.Images.Media.insertImage(getContentResolver(), file.getAbsolutePath(), fileName, null);
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
//
// //通知更新图库
// Uri uri = Uri.parse("file://" + Environment.getExternalStorageDirectory());
// Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
// sendBroadcast(intent);
MediaScannerConnection.scanFile(this,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
}