android将应用中图片保存到系统相册并显示

时间:2020-11-25 05:15:57

我应用到的场景是程序中在视频通讯时截图,将截图保存到本地相册中

/**
*
@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(
"图片保存成功");

}