上一篇文章中讲解了照相机获取照片的时候遇到了可能取得的
uri为null
的状态,并给出了相应的解决方案,但是那种解决方案得到的图片是压缩过的,如果我们想得到相机拍摄出来的原照片,我们又应该怎样做呢?
其实方式很简单,在
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
之后我们直接讲文件先保存到指定的路径filepath,然后直接在
onActivityResult(int requestCode, int resultCode, Intent data)
中把filepath传递过去就行了。
- private String capturePath = null;
- protected void getImageFromCamera() {
- String state = Environment.getExternalStorageState();
- if (state.equals(Environment.MEDIA_MOUNTED)) {
- Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
- String out_file_path = Constant.SAVED_IMAGE_DIR_PATH;
- File dir = new File(out_file_path);
- if (!dir.exists()) {
- dir.mkdirs();
- }
- capturePath = Constant.SAVED_IMAGE_DIR_PATH + System.currentTimeMillis() + ".jpg";
- getImageByCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(capturePath)));
- getImageByCamera.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
- startActivityForResult(getImageByCamera, Constant.REQUEST_CODE_CAPTURE_CAMEIA);
- }
- else {
- Toast.makeText(getApplicationContext(), "请确认已经插入SD卡", Toast.LENGTH_LONG).show();
- }
- }
这样得到的图片是直接从相机中拍摄得到的照片,不会被压缩了。
本文介绍了一种通过Android设备上的相机应用获取未压缩原始照片的方法。该方法涉及在启动相机应用时指定图片保存路径,并在活动回调中直接使用该路径获取图片。
248

被折叠的 条评论
为什么被折叠?



