我应用到的场景是程序中在视频通讯时截图,将截图保存到本地相册中
/**
* @param bmp 获取的bitmap数据
* @param picName 自定义的图片名
*/
public static void saveBmp2Gallery(Bitmap bmp, String picName) {
String fileName = null;
//系统相册目录
String galleryPath= Environment.getExternalStorageDirectory()
+ File.separator + Environment.DIRECTORY_DCIM
+File.separator+"Camera"+File.separator;
// 声明文件对象
File file = null;
// 声明输出流
FileOutputStream outStream = null;
try {
// 如果有目标文件,直接获得文件对象,否则创建一个以filename为名称的文件
file = new File(galleryPath, picName+ ".jpg");
// 获得文件相对路径
fileName = file.toString();
// 获得输出流,如果文件中有内容,追加内容
outStream = new FileOutputStream(fileName);
if (null != outStream) {
bmp.compress(bmp_format, 90, outStream);
}
} catch (Exception e) {
e.getStackTrace();
}finally {
try {
if (outStream != null) {
outStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
//通知相册更新
MediaStore.Images.Media.insertImage(mContext.getContentResolver(), bmp, fileName, null);
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(file);
intent.setData(uri);
mContext.sendBroadcast(intent);
ToastUtil.show("图片保存成功");
}