Xamarin Android显示来自摄像头的流
我是Xamarin的新手,我尝试将我的相机流实现为xaml布局。 这个Xamarin示例将完整的textureview设置为布局,因此我无法添加一些额外的功能,如按钮等 例如,我的布局必须是: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
<?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;
}
};
}