Android 安卓,摄像头,&引用;事实上";支持的图像大小
好的,制作一个摄像头应用程序,其中一个部分是选择img大小,使用以下代码完成:Android 安卓,摄像头,&引用;事实上";支持的图像大小,android,image,camera,resolutions,Android,Image,Camera,Resolutions,好的,制作一个摄像头应用程序,其中一个部分是选择img大小,使用以下代码完成: Camera.Parameters parameters = camera.getParameters(); List<Camera.Size> sizes = parameters.getSupportedPictureSizes(); private void setImgSize() { Log.d(TAG, "+setImgSize"); Camera.Parameters p
Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
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!
好的,测试2。让我们将分辨率设置为640x480。Toast告诉我们分辨率是640x480。酷。让我们来拍摄一些图像,它们的分辨率是640x480
那么,我做错了什么和/或我不明白什么?!?!我得到了支持的图像大小,但其中至少有一个不受支持。是否有办法检查所选分辨率是否实际受支持
我使用的设备是华为Ideos X5/U8800,Android版本为2.3.5
谢谢你的帮助:)
另外,在有人问我为什么要使用如此糟糕的分辨率之前,这就是为什么:这个应用程序将在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();
}
我设置了分辨率(320x240),当我从重新读取参数中读取时,结果是320x240,但当捕获图像时,分辨率是640x480:(我认为您应该从
相机调用getSupportedPictureSizes()
。参数
以了解支持的图像大小
然后,您可以选择支持的图像大小,该大小最接近您实际想要设置的图像大小