2012-02-16 3 views
0

를 저장하지 나는이 페이지를 사용했다.안드로이드 카메라 이미지는 항상

가끔 이미지가 저장되는 경우가 있습니다. 나는 삼성 갤럭시 타블렛 (8.9)에서 테스트 중이다. 해상도를 가장 높은 설정 (2048x1536)으로 유지하면 & 사진을 세로로 가져 가면 이미지가 절대로 저장되지 않습니다. 풍경으로 사진을 찍으면 이미지가 대부분의 시간을 절약합니다. 1024x768로 축소하면 이미지가 세로 또는 가로로 저장됩니다.

이것을 알아내는 방향을 찾고 있습니다.

private void startCameraForCapture() { 

    // create Intent to take a picture and return control to the calling application  
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

    try { 

     fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE, getApplicationContext()); // create a file to save the image 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name 

     // start the image capture Intent 
     startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 


    } catch (Exception e) { 
     // TODO Auto-generated catch block 

     _errorMessageTitle = "Error 'StartCamera'"; 

     _errorMessage = "Error: " + e.toString(); 

     showDialog(DIALOG_ERROR_GENERAL); 

    } 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {   

     if (resultCode == RESULT_OK) {    

      showPhoto(2); 

     } else if (resultCode == RESULT_CANCELED) {    

      // User cancelled the image capture   

     } else {    

      // Image capture failed, advise user  
      _errorMessageTitle = "Error in 'Take Photo'"; 

      _errorMessage = "Image Capture Failed"; 

      showDialog(DIALOG_NOTICE_GENERAL); 

     }  

    }  

    if (requestCode == CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE) {   

     if (resultCode == RESULT_OK) {  

      Toast.makeText(getApplicationContext(), "Video not yet supported", Toast.LENGTH_LONG).show(); 

      // Video captured and saved to fileUri specified in the Intent   


     } else if (resultCode == RESULT_CANCELED) {   

      // User cancelled the video capture  

     } else {   

      // Video capture failed, advise user  

     }  

    } 

} 
+0

에뮬레이터의 작업 공간 또는 장치 공간이 충분합니까? –

+0

새로운 태블릿입니다. 12GB의 저장 용량을 사용할 수 있습니다. RAM을 검사 할 때 200MB의 여유 공간이 있습니다. – Chris

+0

사진을 너무 빨리 찍을 때도 같은 문제가있었습니다. 다음 사진을 촬영하기 전에 항상 디스크에 저장되는 것은 아니며 손상된 사진으로 끝나거나 전혀 복원되지 않습니다. 사진을 저장하고 기다리는 중입니까? 아니면 차례로입니까? –

답변

0

죄송합니다. 문제는 내 안드로이드에 대한 멍청한 존재였다.

OnCreate 메서드에는 사진의 이미지를 저장하는 데 사용 된 Temp 폴더에서 파일을 삭제하는 기능이있었습니다 (OnCreate에서 정리 목적으로 추가했습니다).

방향 변경이있을 때 OnCreate가 다시 호출되는 것을 알았습니다.

일부 삼성 기기의 경우 카메라가 세로 방향 (내 앱에서 허용 한 유일한 방향 이었음)에서 가로 방향으로 화면을 회전합니다.

사진을 찍을 때 "이미지 저장"을 선택하기 전에 사용자가 장치를 회전했는지에 따라 방향이 바뀌고 있습니다.

오리엔테이션이 변경되었으므로 임시 파일을 삭제하는 데 사용한 기능이 호출되었습니다. 내가 알아 낸 후 꽤 벙어리 펠트.