우선 출처는 : http://jeongchul.tistory.com/287 여기서 그대로 소스를 복사해왔구요 DB를 구성하기 전까지는 사진촬영하고 crop한 이미지를 해당 이미지뷰에 문제없이 보여줬는데 db를 생성한 이후 사진을 촬영하고 크롭하는거까진 되는데 저장버튼을 누르면 해당이미지뷰에 사진을 로드하지를 못해요 ㅠㅠ
해당소스만 첨부하자면
/**
* 카메라에서 사진 촬영
*/
public void doTakePhotoAction() // 카메라 촬영 후 이미지 가져오기
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 임시로 사용할 파일의 경로를 생성
String url = "tmp_" + String.valueOf(System.currentTimeMillis()) + ".jpg";
mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url));
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
startActivityForResult(intent, PICK_FROM_CAMERA);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode != RESULT_OK)
return;
switch(requestCode)
{
case PICK_FROM_CAMERA:
{
// 이미지를 가져온 이후의 리사이즈할 이미지 크기를 결정합니다.
// 이후에 이미지 크롭 어플리케이션을 호출하게 됩니다.
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(mImageCaptureUri, "image/*");
// CROP할 이미지를 200*200 크기로 저장
intent.putExtra("outputX", 200); // CROP한 이미지의 x축 크기
intent.putExtra("outputY", 200); // CROP한 이미지의 y축 크기
intent.putExtra("aspectX", 1); // CROP 박스의 X축 비율
intent.putExtra("aspectY", 1); // CROP 박스의 Y축 비율
intent.putExtra("scale", true);
intent.putExtra("output", mImageCaptureUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP_FROM_iMAGE); // CROP_FROM_CAMERA case문 이동
Log.d(TAG, "**********************sendMassage PIck_from_camera******************");
break;
}
}
여기서 DB에 URI를 넣기 위해
String str_image = mImageCaptureUri.toString();
이런식으로 뽑아와서 PUT해주는데
mImageCaptureUri 변수자체가 갤러리에서 이미지를 선택했을때 뽑아오는URI와도 같아요 근데 갤러리에서 이미지 선택했을땐 잘 로드되는데 유독 카메라에서 촬영하려할때 안되네요 ㅠㅠ 퍼미션도 받았어요
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
이게 오류메세지예요!
Failed to mkdirat(/storage/extSdCard/Android): Read-only file system