Android调用系统相机拍照 获取原图

拍照时候在onActivityResult中获得相机拍照后点击确定后的照片。
Android中用Intent提取缩略图和原始图像
可以接受照片的缩略图

Bundle bundle =data.getExtras();
photo = (Bitmap)bundle.get("data");

或者

photo=data.getParcelableExtra("data");

也可以接受原图片的uri地址

在Intent调用相机时存一个uri

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, PHOTO_WITH_CAMERA);

然后在onActivityResult中取

 imageUri = Uri.parse(MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), f.getAbsolutePath(), null, null));

其中f 就是拍照时的指定的图片文件路径

File f=new File(Environment.getExternalStorageDirectory() 
+"/"+localTempImgDir+"/"+localTempImgFileName); 
try {
imageUri = Uri.parse(MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), f.getAbsolutePath(), null, null));
//通知图库更新
getActivity().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

参考文章android 调用系统相机拍照 获取原图
b在

 FileOutputStream fileOutputStream = null;
try {
// 获取 SD 卡根目录
String saveDir = Environment.getExternalStorageDirectory() + "/hylife_photos";
// 新建目录
File dir = new File(saveDir);
if (!dir.exists())
dir.mkdir();
// 生成文件名
SimpleDateFormat t = new SimpleDateFormat("yyyy_MMddssSSS");
String filename = "hy" + (t.format(new Date())) + ".jpg";
// 新建文件
File file = new File(saveDir, filename);
// 打开文件输出流
fileOutputStream = new FileOutputStream(file);
// 生成图片文件                  photo.compress(Bitmap.CompressFormat.JPEG,100, fileOutputStream);
// 相片的完整路径
picPath = file.getPath();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fileOutputStream != null) {
try {
fileOutputStream.close();
// photo.recycle();
} catch (Exception e) {
 e.printStackTrace();
}
}
}
try {                  MediaStore.Images.Media.insertImage(getActivity().getContentResolver(),
picPath, "photos", null);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 最后通知图库更新
getActivity().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));

你可能感兴趣的:(编程代码)