마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

사진 등록에 대해 질문을 남겨봅니다.

0 추천
현제 사진 을 총 3장을 등록할 수 있게 레이아웃을 만들었습니다.

case R.id.image_regist_one:
     Intent mintent = new Intent(Intent.ACTION_PICK,  MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
     mintent.setType(MediaStore.Images.Media.CONTENT_TYPE);
     mImageCaptureUri= FileUtils.createCacheFile(SupermomTalk_AddActivity.this);
     mintent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);     // 임시파일 생성
     mintent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); // 포맷방식
     startActivityForResult(mintent, IMAGE);
break;

 

첫번째 이미지를 클릭했을때 카메라로 넘어가게끔 했습니다.

 

protected  void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode != RESULT_OK){
            return;
        }
        switch (requestCode) {
            case IMAGE:
                Intent intent = null;
                Bitmap captureBitmap = null;
                try {

                    captureBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
                    intent = new Intent("com.android.camera.action.CROP");
                    FileUtils.BitmapSaveToFileCach(this, mImageCaptureUri, captureBitmap, 100);
                    intent.setDataAndType(mImageCaptureUri, "image/*");
                    intent.putExtra("outputX", 250);
                    intent.putExtra("outputY", 250);
                    //크롭 비율 설정.
                    intent.putExtra("aspectX", 1);
                    intent.putExtra("aspectY", 1);
                    intent.putExtra("scale", true);
                    intent.putExtra("return-data", true);
                    intent.putExtra("output", mImageCaptureUri);
                    startActivityForResult(intent, CROP);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                break;
            case CROP:
                Bitmap selectedImage = BitmapFactory.decodeFile(mImageCaptureUri.getPath());
                Drawable back = new BitmapDrawable(selectedImage);

                break;
            default:
                break;
        }

카메라로 넘어간후에 크롭까지 설정이 끝났는데.

문제는 지금제가 사진을 등록해야하는 폼이 총 3개있습니다.

첫 번째 사진등록을 클릭했을때, 두 번째, 세 번째가 있는데 첫번째를 통해서 들어왔다는 것은 어떻게 판별하고 카메라나 갤러리에서 불러온 값을 저장할 수 있을까요?

onActivityResult에서 파라메타로 Intent data가 들어오는데 이것으로 구분을하나요? 그럼 클릭이벤트에서 부터 내가 누군지를 intent에 포함시켜서 타고 넘어와야하는건가요?
초보개발짜욥 (2,800 포인트) 님이 2016년 3월 30일 질문

1개의 답변

0 추천
사진 선택 - > 크롭 이 시나리오를 세번 반복 하신다는 말씀이신가요?

크롭을 한후 임시로 파일을 저장한후 세개 선택 및 크롭 시나이로가 마치면 각각 이미지 경로를 가져오는 방법이 좋지 않을까요?
익명사용자 님이 2016년 3월 30일 답변
답변감사합니다. 3번 반복하는거 맞습니다. 사용자에 따라 0번이 될수도있고 3번이 될수도 있습니다. 저는 하나의 전역변수를 만들어 포지션값을 정하고 1,2,3 포지션 값에 따라 갤러리의 사진을 등록했습니다. 답변 감사합니다!
좋은하루되세요~^^
...