Xamarin形式:如何拍照?

时间:2018-06-14 23:21:54

标签: xamarin xamarin.forms

在我的xamarin表单应用程序中,我有一个页面,其中有一个小的摄像机视图,我想从该摄像机视图拍摄照片。

如果我想完全导航到新页面并拍照,我知道可以使用像this

这样的插件来完成
await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
        {
            Directory = "Test",
            SaveToAlbum = true,
            CompressionQuality = 75,
            CustomPhotoSize = 50,
            PhotoSize = PhotoSize.MaxWidthHeight,
            MaxWidthHeight = 2000,
            DefaultCamera = CameraDevice.Front
        });

如果我想在现有页面上从相机拍摄照片而不导航到新页面,有人可以建议我需要接近吗?

2 个答案:

答案 0 :(得分:1)

微软文档中提供了完整的相机视图示例(带有自定义渲染器):https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/view

在本文中,您将学习如何为Xamarin.Forms自定义控件创建自定义渲染器,该控件用于显示来自设备相机的预览视频流。

但是,您需要添加拍摄照片所需的代码。为此,您可以从此应用的自定义渲染器中获取灵感:https://github.com/pierceboggan/Moments

答案 1 :(得分:1)

要捕获图像,必须将其返回到如下变量:

var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
    Directory = "Test",
    SaveToAlbum = true,
    CompressionQuality = 75,
    CustomPhotoSize = 50,
    PhotoSize = PhotoSize.MaxWidthHeight,
    MaxWidthHeight = 2000,
    DefaultCamera = CameraDevice.Front
});

然后您可以将图像安装在视图上的图像控制器上,如下所示:

image1.Source = file.Path;