android中保存图像的方法(使用content provider):
ContentValues values = new ContentValues(8);
String newname = DateFormat.format("yyyy-MM-dd kk.mm.ss", System.currentTimeMillis()).toString();
values.put(MediaStore.Images.Media.TITLE, newname);//名称,随便
values.put(MediaStore.Images.Media.DISPLAY_NAME, newname);
values.put(MediaStore.Images.Media.DESCRIPTION, "test");//描述,随便
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());//图像的拍摄时间,显示时根据这个排序
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");//默认为jpg格式
values.put(MediaStore.Images.Media.ORIENTATION, 0);//
final String CAMERA_IMAGE_BUCKET_NAME = "/sdcard/dcim/camera";
final String CAMERA_IMAGE_BUCKET_ID = String.valueOf(CAMERA_IMAGE_BUCKET_NAME.hashCode());
File parentFile = new File(CAMERA_IMAGE_BUCKET_NAME);
String name = parentFile.getName().toLowerCase();
values.put(Images.ImageColumns.BUCKET_ID, CAMERA_IMAGE_BUCKET_ID);//id
values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, name);
// 先得到新的URI
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
try {
//写入数据
OutputStream outStream = getContentResolver().openOutputStream(uri);
mBmpForSave.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.close();
mBmpForSave.recycle();
return ;
} catch (Exception e) {
Log.e(TAG, "exception while writing image", e);
}