Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓,摄像头,&引用;事实上";支持的图像大小_Android_Image_Camera_Resolutions - Fatal编程技术网

Android 安卓,摄像头,&引用;事实上";支持的图像大小

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

好的,制作一个摄像头应用程序,其中一个部分是选择img大小,使用以下代码完成:

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()
。参数
以了解支持的图像大小

然后,您可以选择支持的图像大小,该大小最接近您实际想要设置的图像大小