Android保存图片到本地或者数据库,并通知相册更新
16lz
2021-01-23
Android保存图片到media,并更新相册
//保存到本地 public static void savePhoto(Context context, Bitmap bitmap){ File photoDir = new File(Environment.getExternalStorageDirectory(),"MeiTuanApp"); if (!photoDir.exists()){ photoDir.mkdirs(); } String fileName = System.currentTimeMillis()+".jpg"; File photo = new File(photoDir,fileName); try { FileOutputStream fos = new FileOutputStream(photo); bitmap.compress(Bitmap.CompressFormat.JPEG,100,fos); fos.flush(); fos.close(); }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } updatePhotoMedia(photo,context); } //保存到数据库 public static void savePhotoToMedia(Context context, Bitmap bitmap){ String uriString = MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, null, null); File file = new File(getRealPathFromURI(Uri.parse(uriString),context)); updatePhotoMedia(file,context); } //更新图库 private static void updatePhotoMedia(File file ,Context context){ Intent intent = new Intent(); intent.setAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); intent.setData(Uri.fromFile(file)); context.sendBroadcast(intent); } //得到绝对地址 private static String getRealPathFromURI(Uri contentUri,Context context) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String fileStr = cursor.getString(column_index); cursor.close(); return fileStr; }