2012-02-16 26 views
0

我用这个页面:http://developer.android.com/guide/topics/media/camera.htmlAndroid的 - 摄像机图像并不总是保存

要了解如何利用现有的相机应用拍照&返回结果我的应用程序。

有时图像会保存,有时候不会。我正在测试三星Galaxy Tablet(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

模拟器上的足够空间与您的工作或设备? – 2012-02-16 16:37:37

+0

这是一款全新的平板电脑。我有12 GB的存储空间。当我检查RAM时,我有200 MB的空闲空间。 – Chris 2012-02-16 17:41:40

+0

当拍照速度过快时,我们遇到了同样的问题。在下一张照片拍摄完成之前,它们并不总是保存到磁盘上,或者完全没有损坏的照片。你保存图片,然后等待?还是一个接一个呢? – 2012-02-16 22:17:18

回答

0

对不起,应该早点解决了。问题是我成为Android的小菜鸟。

在OnCreate方法我有一个从我用于将图像从光存储临时文件夹中删除文件的函数(I在OnCreate中添加用于清理目的)。

我发现OnCreate中被调用时再有一个方向变化。

在某些三星设备,摄像机旋转从纵向屏幕(这是我在我的应用程序允许的唯一方向)为横向。

当照片拍摄,取决于如果用户选择“保存图像”之前旋转他们的装置中,取向发生变化。

由于取向改变,我用来删除临时文件的函数被调用。我想出来后觉得很蠢。

相关问题