Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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
C# Xamarin设置相机分辨率_C#_Android_Xamarin_Camera_Xamarin.android - Fatal编程技术网

C# Xamarin设置相机分辨率

C# Xamarin设置相机分辨率,c#,android,xamarin,camera,xamarin.android,C#,Android,Xamarin,Camera,Xamarin.android,我在XamarinVisualStudio中做了一个自定义相机应用程序,它以非常低的分辨率拍摄照片,所以我添加了这段代码 public void OnSurfaceTextureAvailable(Android.Graphics.SurfaceTexture surface, int w, int h) { _camera = Android.Hardware.Camera.Open(); Android.Hardware.Cam

我在XamarinVisualStudio中做了一个自定义相机应用程序,它以非常低的分辨率拍摄照片,所以我添加了这段代码

public void OnSurfaceTextureAvailable(Android.Graphics.SurfaceTexture surface, int w, int h)
        {
            _camera = Android.Hardware.Camera.Open();
            Android.Hardware.Camera.Parameters param = _camera.GetParameters();
            IList<Android.Hardware.Camera.Size> supportedSizes = param.SupportedPictureSizes;
            Android.Hardware.Camera.Size sizePicture = supportedSizes[0];
            param.SetPictureSize(sizePicture.Height, sizePicture.Width);
            _camera.SetParameters(param);

            var previewSize = _camera.GetParameters().PreviewSize;
            _textureView.LayoutParameters = 
                new FrameLayout.LayoutParams(h, w, GravityFlags.Center);
            try
            {
                _camera.SetPreviewTexture(surface);
                _camera.StartPreview();
            }
            catch (Java.IO.IOException ex)
            {
                Console.WriteLine(ex.Message);
            }
            _textureView.Rotation = 90.0f;
        }
SurfaceTextureAvailable上的公共void(Android.Graphics.SurfaceTexture-surface,int w,int h)
{
_camera=Android.Hardware.camera.Open();
Android.Hardware.Camera.Parameters参数=_Camera.GetParameters();
IList supportedSizes=param.SupportedPictureSizes;
Android.Hardware.Camera.Size-sizePicture=supportedsize[0];
参数SetPictureSize(sizePicture.Height,sizePicture.Width);
_摄像机参数设置(参数);
var previewSize=\u camera.GetParameters().previewSize;
_textureView.LayoutParameters=
新的FrameLayout.LayoutParams(h、w、GravityFlags.Center);
尝试
{
_摄像头。设置预览纹理(表面);
_camera.StartPreview();
}
捕获(Java.IO.IOException-ex)
{
控制台写入线(例如消息);
}
_纹理视图。旋转=90.0f;
}
在第一行中,我获取相机参数,然后获取支持的图片大小,然后选择第一行([0]),最后设置图片大小

Android.Hardware.Camera.Parameters param = _camera.GetParameters();
            IList<Android.Hardware.Camera.Size> supportedSizes = param.SupportedPictureSizes;
            Android.Hardware.Camera.Size sizePicture = supportedSizes[0];
            param.SetPictureSize(sizePicture.Height, sizePicture.Width);
            _camera.SetParameters(param);
Android.Hardware.Camera.Parameters参数=_Camera.GetParameters();
IList supportedSizes=param.SupportedPictureSizes;
Android.Hardware.Camera.Size-sizePicture=supportedsize[0];
参数SetPictureSize(sizePicture.Height,sizePicture.Width);
_摄像机参数设置(参数);
但当我运行代码时,会显示以下消息:

未处理的异常:

Java.Lang.RuntimeException:设置参数失败


这里怎么了?我无法设置函数返回的任何受支持的大小?我如何选择其中任何一个,例如第一个?还有一些我必须考虑的问题?

您将
宽度
高度
参数进行了转换,从而提供了无效(不受支持)的图片大小

param.SetPictureSize(sizePicture.Width, sizePicture.Height);
void setPictureSize(整数宽度、整数高度)


回复:

关于您选择图片大小的方式的简短说明。索引为0的并不总是最好的。虽然Nexus 4、5和5X是这样的,但它并不适用于某些索尼设备。谢谢你的建议,我会考虑它。你能帮我解决这个问题吗:这太困难了