2013-03-17 3 views
2

버튼을 클릭하고 사진을 찍을 수있는 앱을 만든 다음 사진을 찍은 후 이미지 뷰에 표시하고 싶습니다.이미지 뷰에서 이미지의 원래 크기를 표시하는 방법

는 그위한 코드를 사용

@Override 
public void onActivityCreated (Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState);  

    Button b = (Button) getView().findViewById(R.id.button1); 
    b.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) {   
      try { 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri); 
       startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
      } catch(ActivityNotFoundException e){ 
       Toast.makeText(getActivity(), "Your device does not have a camera", Toast.LENGTH_SHORT).show(); 
      }  
     }   
    }); 

    send = (Button) getView().findViewById(R.id.button2); 
    send.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getActivity(), "Uploading image...", Toast.LENGTH_LONG).show(); 
      new uploadtoserver().execute(); 
     }   
    }); 
} 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_PIC_REQUEST) { 
     if (data != null) { 
      Bitmap thumbnail = (Bitmap) data.getExtras().get("data");    
      ImageView image = (ImageView) getView().findViewById(R.id.imageView1); 
      //image.setImageBitmap(thumbnail); 

      send.setVisibility(Button.VISIBLE); 

      // CALL THIS METHOD TO GET THE URI FROM THE BITMAP 
      Uri tempUri = getImageUri(getActivity(), thumbnail); 
      // CALL THIS METHOD TO GET THE ACTUAL PATH 
      finalFile = new File(getRealPathFromURI(tempUri)); 

      Bitmap bmImg = BitmapFactory.decodeFile(finalFile.toString()); 

      image.setImageBitmap(bmImg); 

      System.out.println(finalFile); 
     } 
    } 
} 

여기되는 이미지 뷰의 XML 부분이지만 이미지가 잘려 (아닌 원래 크기)

추한 보이고

이미지 뷰에서 사진의 원래 크기를 표시하는 방법은 무엇입니까?

답변

0

Intent 여분으로 반환 된 이미지 데이터는 캡처 한 이미지의 축소 버전으로, 축소판에 적합합니다. 전체 크기 이미지는 요청에 따라 EXTRA_OUTPUT Uri로 전달한 파일 위치에 기록됩니다. 전체 이미지 자체에 대해 작업하려면 해당 이미지를보아야합니다.

Android는 하나만 보증하므로, EXTRA_OUTPUT 위치에 전달 중이고 "데이터"입력란에 표시된 결과를 찾는 것은 모든 기기에서 작동하지 않습니다. 프레임 워크가 보증하는 것이 아닙니다 (docs for more info). 요청이있을 때 제시 한 우리의 파일을 읽는 것을 기대해야합니다. 이미지가 거기에 쓰여지고 있지 않다면 카메라 앱이 사용자가 제공 한 Uri 위치에 액세스 할 수 없기 때문에 공개 위치 (예 : 외부 저장소, 개인 내부 저장소가 아닌 앱)에 대한 올바른 경로 여야합니다.

관련 문제