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;
}