사진 불러오기를 하여 앨범에서 이미지 선택 후 크롭하여 이미지 뷰에 보여줘야 되는데
크롭하고 나서 확인 누르면 그냥 크롭화면 사라지더니 이전 액티비티로 돌아갑니다.
킷캣부터 뭔가 바꼈다고 하는데
현재 제가 쓰고 있는 소스는
private void doTakePhotoAction()
{
Log.d(tag,"사진1");
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 임시로 사용할 파일의 경로를 생성
String url = "tmp.jpg";
mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url));
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
// 특정기기에서 사진을 저장못하는 문제가 있어 다음을 주석처리 합니다.
//intent.putExtra("return-data", true);
startActivityForResult(intent, PICK_FROM_CAMERA);
}
private void doTakeAlbumAction()
{
// 앨범 호출
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
startActivityForResult(intent, PICK_FROM_ALBUM);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode != RESULT_OK)
{
return;
}
switch(requestCode)
{
case CROP_FROM_CAMERA:
{
// 크롭이 된 이후의 이미지를 넘겨 받습니다.
// 이미지뷰에 이미지를 보여준다거나 부가적인 작업 이후에
// 임시 파일을 삭제합니다.
final Bundle extras = data.getExtras();
if(extras != null)
{
Bitmap photo = extras.getParcelable("data");
mPhotoImageView.setImageBitmap(photo);
}
// 임시 파일 삭제
File f = new File(mImageCaptureUri.getPath());
if(f.exists())
{
f.delete();
}
break;
}
case PICK_FROM_ALBUM:
{
// 이후의 처리가 카메라와 같으므로 일단 break없이 진행합니다.
// 실제 코드에서는 좀더 합리적인 방법을 선택하시기 바랍니다.
mImageCaptureUri = data.getData();
}
case PICK_FROM_CAMERA:
{
// 이미지를 가져온 이후의 리사이즈할 이미지 크기를 결정합니다.
// 이후에 이미지 크롭 어플리케이션을 호출하게 됩니다.
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(mImageCaptureUri, "image/*");
intent.putExtra("outputX", 120);
intent.putExtra("outputY", 130);
// intent.putExtra("aspectX", 1);
// intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP_FROM_CAMERA);
break;
}
}
}
ㅇ ㅣ소스를 쓰고 있거든요.
검색은 해봤는데
ACTION_PICK 또는 ACTION_GET_CONTENT
이거 때문인가요?
4.4 부터 ACTION_OPEN_DOCUMENT 이거를 써야 한다고 하는거 같기도 해서요
참고 링크입니다
https://medium.com/marojuns-android/kitkat-4-4-%EC%97%90%EC%84%9C-%EB%A7%9E%EB%8B%A5%EB%9C%A8%EB%A6%B0-%EC%9D%B4%EC%8A%88-%EB%B0%8F-%ED%95%B4%EA%B2%B0-1ecb94c24694
어느 부분을 수정해줘야 하나요?