好,使得相机应用,一个部分是选择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 :(