2011-11-25 142 views
1

即時通訊開發一個應用程序,允許用戶拍照,然後它在後臺做一些工作,但我遇到了一個問題,我硬編碼的圖片大小,它和它導致錯誤在不同的手機上,我正在使用,並假設其下到手機不支持相機大小我硬編碼。設置在Android手機上的攝像頭分辨率

我在這裏讀過關於它的問題,但答案含糊不清,所有人都一直說要使用getSupportedSizes方法,但我只是不知道該如何處理它。

任何幫助將不勝感激。

回答

6

使用此方法很重要,因爲不同設備上的相機支持的分辨率差別很大,所以您必須指定您想要的分辨率,而不是指定設備上可用的分辨率。

僞....

Camera.Parameters cp = mCamera.getParameters(); 

    List<Size> sl = cp.getSupportedPictureSizes(); 

//now that you have the list of supported sizes, pick one and set it back to the parameters... 
    int w,h; 
    for(Size s : sl){ 
     //if s.width meets whatever criteria you want set it to your w 
     //and s.height meets whatever criteria you want for your h 
     w = s.width; 
     h = s.height; 
     break; 


    } 

    cp.setPictureSize(w, h); 

    mCamera.setParameters(cp); 

通常認爲最重要的東西是照片的縱橫比。因此,您需要將w/h與16:9或4:3進行比較,然後在支持比率中查找最高(或次高)質量。很明顯,我不知道你的需求是什麼,所以你必須確定什麼尺寸實際上符合你給定的標準。如果您只想要最高質量,而且不關心縱橫比,則通常會將其作爲尺寸列表中的最後一項。

+0

即時通訊尋找設置質量最低作爲即時通訊保存文件到SD卡和即時通訊嘗試佔用儘可能少的內存 –

+0

@RoyJamesSchumacher,好的...好吧,我想我已經給你了您需要完成的信息。你需要幫助找到列表中最低的數字嗎? –

+0

對不起回覆非常忙,但沒有謝謝,我已經得到它現在的工作。非常感謝你的支持,並幫助它greatley讚賞 –