Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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
Xamarin Android显示来自摄像头的流_Android_Xaml_Xamarin_Android Camera_Textureview - Fatal编程技术网

Xamarin Android显示来自摄像头的流

Xamarin Android显示来自摄像头的流,android,xaml,xamarin,android-camera,textureview,Android,Xaml,Xamarin,Android Camera,Textureview,我是Xamarin的新手,我尝试将我的相机流实现为xaml布局。 这个Xamarin示例将完整的textureview设置为布局,因此我无法添加一些额外的功能,如按钮等 例如,我的布局必须是: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertic

我是Xamarin的新手,我尝试将我的相机流实现为xaml布局。 这个Xamarin示例将完整的textureview设置为布局,因此我无法添加一些额外的功能,如按钮等

例如,我的布局必须是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:text="Button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button1" />
    <TextureView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textureView1"
        android:layout_marginTop="0.0dp" />
</LinearLayout>

有人能帮我在布局xaml的“TextureView”中添加相机预览吗


提前谢谢

您可以通过调用
SetContentView
加载您的
axml
,即

SetContentView(Resource.Layout.CameraLayout);
注意:这假设布局文件夹中的axml名称为CameraLayout.xml(.axml)

用法示例:
公共类活动1:活动
{
布卢预演;
摄像机(摄像机),;
纹理视图(TextureView);;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.CameralLayout);
Button Button=FindViewById(Resource.Id.button1);
_textureView=FindViewById(Resource.Id.textureView W1);
按钮。单击+=委派{
尝试
{
如果(!\u预览)
{
_camera=camera.Open();
_摄影机.SetPreviewTexture(_textureView.SurfaceTexture);
_camera.StartPreview();
}
其他的
{
_camera.StopPreview();
_相机。释放();
}
}
捕获(Java.IO.IOException-ex)
{
控制台写入线(例如消息);
}
最后
{
_预览=!\u预览;
}
};
}
输出:

SetContentView(Resource.Layout.CameraLayout);
public class Activity1 : Activity 
{
    bool _previewing;
    Camera _camera;
    TextureView _textureView;
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        SetContentView(Resource.Layout.CameraLayout);
        Button button = FindViewById<Button>(Resource.Id.button1);
        _textureView = FindViewById<TextureView>(Resource.Id.textureView1);
        button.Click += delegate {
            try
            {
                if (!_previewing)
                {
                    _camera = Camera.Open();
                    _camera.SetPreviewTexture(_textureView.SurfaceTexture);
                    _camera.StartPreview();
                }
                else
                {
                    _camera.StopPreview();
                    _camera.Release();
                }
            }
            catch (Java.IO.IOException ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                _previewing = !_previewing;
            }
        };
    }