android将图片保存到系统相册

private static File mPhotoFile = null;
public static void setPhotoFile(File photoFile){
mPhotoFile = photoFile;
}

public static File getPhotoFile(){

    return mPhotoFile;
}

/**
* @param bmp 获取的bitmap数据
* @param picName 自定义的图片名
*/
public static void saveBmp2Gallery(Context context,Bitmap bmp, String picName) {
// saveImageToGallery(bmp,picName);
String fileName = null;
//系统相册目录
String galleryPath = Environment.getExternalStorageDirectory()
+ File.separator + Environment.DIRECTORY_DCIM
+ File.separator + “Camera” + File.separator;
// + File.separator + “yingtan” + File.separator;

// String photoName = System.currentTimeMillis() + “.jpg”;
// 声明文件对象
File file = null;
// 声明输出流
FileOutputStream outStream = null;
try {
// 如果有目标文件,直接获得文件对象,否则创建一个以filename为名称的文件
file = new File(galleryPath, picName + “.jpg”);
// file = new File(galleryPath, photoName);
// 获得文件相对路径
fileName = file.toString();
// 获得输出流,如果文件中有内容,追加内容
outStream = new FileOutputStream(fileName);
if (null != outStream) {
bmp.compress(Bitmap.CompressFormat.JPEG, 90, outStream);
}
}catch (Exception e) {
e.getStackTrace();
} finally {
try {
if (outStream != null) {
outStream.close();
setPhotoFile(file);
}
} catch (IOException e) {
e.printStackTrace();
}
}

    try {

// MediaStore.Images.Media.insertImage(context.getContentResolver(),file.getAbsolutePath(),fileName,null);
MediaStore.Images.Media.insertImage(context.getContentResolver(),bmp,fileName,null);
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(file);
intent.setData(uri);
context.sendBroadcast(intent);
ToastUtils.showToast(context,“图片保存成功”);
} catch (Exception e) {
e.printStackTrace();
ToastUtils.showToast(context,“图片保存失败”);
}

}
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页