2012-08-23 60 views
1

在我的應用程序中,我通過內置相機活動拍攝圖像並將其存儲在SD卡中。我正在使用intent.putextras來獲取高分辨率圖像。設置相機拍攝圖像的分辨率

第一個設備 - 代碼工作成功,我得到一個分辨率爲640X480的圖像。

第二個設備 - 當內置攝像頭活動要求保存拍攝的圖像時,強制關閉。但是,當我明確地將設備的相機分辨率更改爲640X480並重新運行該應用程序時,它工作得很好。

問題: -

  1. 方法來克服這個?
  2. 可以這是一個Android版本相關的問題。這兩款設備的android版本不同。
  3. Thera是將分辨率參數(640,480)傳遞到內置相機活動的一種方式?或者一個自制的相機活動是必要的?

這裏去的代碼

public void onClick(View v) { 
    // TODO Auto-generated method stub 

    if(v.getId()!=1000){ 
     imageFile = "bmp"+v.getId()+".png"; 

     File f = new File (folder,imageFile); 
     imageUri = Uri.fromFile(f); 
     Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri); 
     startActivityForResult(i,CAMERA_PIC_REQUEST); 
    } 
    if(v.getId()==1000){ 
     Intent openFinalShow = new Intent("com.integrated.mpr.FINALSHOW"); 
     startActivity(openFinalShow); 
     finish(); 
    } 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 

    super.onActivityResult(requestCode, resultCode, data); 
    if(resultCode == RESULT_OK){ 
      return; 
    } 
} 
+0

向我們展示該力量關閉的一些LogCat。 –

+0

因爲我沒有使用任何USB調試技術,並且模擬器不支持攝像頭活動,所以我無法獲得logcat –

+0

@RaghavSood我編輯了我的問題,請檢查它。 –

回答

1

我不相信這是可能的分辨率參數傳遞的意圖,股票相機。這裏有關於具有不同照相機的不同電話的問題,以及用戶具有不同的默認照相機應用程序的可能性,這些應用程序不會識別所述意圖附加功能。

解決您的問題是用自己的預覽和相機設置編寫自定義相機活動。然後,您可以正確設置錄製的圖像/視頻的分辨率。以及分辨率和/或預覽窗口的大小等

camera developer guide和其他搜索定製的Android相機的例子將使用

0

無論是故意讓你指定的分辨率或otherwie你不能實現你想要的。 此外,您必須確保在通過Camera.Parameters對象設置圖片大小時,您只能使用Camera.getSupportedPitureSizes提供的值中的一個。

相關問題