好,使得相機應用,一個部分是選擇IMG大小,用下面的代碼完成:的Android,攝像頭和「實際」支持的圖像尺寸
Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
我得到一個不錯的列表與支持的尺寸。兩個最差的分辨率是640x480和320x240。 但是當我將分辨率設置爲320x240而不是640x480時!
我設定如下代碼解析:
private void setImgSize()
{
Log.d(TAG, "+setImgSize");
Camera.Parameters params = camera.getParameters();
params.setPictureSize(WIDTH, HEIGHT);
camera.setParameters(params);
Toast.makeText(getApplicationContext(),
"Resolution set to "+WIDTH+"x"+HEIGHT,
Toast.LENGTH_SHORT).show();
}
寬度和高度從settingsactivity返回的值,我得到一個不錯的吐司,告訴分辨率設置爲320x240。但是當拍攝圖像時,分辨率是640x480!好的,test2。我們將分辨率設置爲640x480。吐司告訴說,分辨率是640x480。涼。我們來捕捉一些圖像,其分辨率是640x480的定義!
那麼,我在這裏做錯了什麼和/或什麼我不明白?!?!我獲得了支持的圖像大小,至少其中一個不受支持。有什麼方法可以檢查選定的分辨率是否支持實際上是?
我使用的設備是Android 2.3.5版本的華爲Ideos X5/U8800。
感謝您的幫助:)
P.S.在有人問我爲什麼要使用這樣糟糕的分辨率之前,這就是爲什麼:這個應用程序將以N秒爲間隔捕捉圖像。如果應用程序正在運行,比方說,很很長一段時間,我會在我的SD卡與大型圖像:)
編輯運行的空間:改變了setImgSize() - 方法,現在它看起來像這樣:
private void setImgSize() {
Log.d(TAG, "+setImgSize");
Camera.Parameters params = camera.getParameters();
params.setPictureSize(WIDTH, HEIGHT);
// set jpeg quality to best
params.setJpegQuality(100);
camera.setParameters(params);
params = null;
params = camera.getParameters();
Camera.Size size = params.getPictureSize();
Toast.makeText(getApplicationContext(),
"Resolution set to "+size.width+"x"+size.height,
Toast.LENGTH_SHORT).show();
}
我設置分辨率(320×240),並且當我重新讀參數導致閱讀是320×240,但是當圖像被拍攝分辨率爲640x480 :(