0

I want to take photo using Xamarin form custom renderer. I use Custom Renderer Sample and I add a Button named 'btnTakePicture' in Xaml , but I don't have any idea how to take photo on Button click event. I want to show camera in part of screen. Also I checked Xam.Media.Plugin and I couldn't take photo.

Xaml Code

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
             xmlns:local="clr-namespace:CustomRenderer;assembly=CustomRenderer"
             x:Class="CustomRenderer.frmCamera"
             Title="Main Page">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*"/>
            <RowDefinition Height="7*"/>
            <RowDefinition Height="2*"/>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <Label Text="Camera Preview"/>
        </Grid>
        <Grid Grid.Row="1">
            <local:CameraPreview Camera="Rear" x:Name="cmrPreview"
                             HorizontalOptions="FillAndExpand"
                             VerticalOptions="FillAndExpand"  Background="black"/>
        </Grid>
        <Grid Grid.Row="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="1*"/>
            </Grid.ColumnDefinitions>
            <Button x:Name="btnChangeCamera" Text="Switch Camera" Clicked="btnChangeCamera_Clicked"/>
            <Button x:Name="btnTakePicture" Text="Take" Grid.Column="1" Clicked="btnTakePicture_Clicked"/>
        </Grid>
        <Frame></Frame>
    </Grid>
</ContentPage>

C# Code

using System.IO;
using Xamarin.Essentials;
using Xamarin.Forms;

namespace CustomRenderer
{
    public partial class frmCamera : ContentPage
    {
        public frmCamera()
        {
            InitializeComponent();
        }

        private void btnChangeCamera_Clicked(object sender, System.EventArgs e)
        {
            if (cmrPreview.Camera == CameraOptions.Rear)
                cmrPreview.Camera = CameraOptions.Front;
            else
                cmrPreview.Camera = CameraOptions.Rear;

        }

        bool blnIsFlashLight = false;
        private void btnFlashLight_Clicked(object sender, System.EventArgs e)
        {
            if (blnIsFlashLight)
            {
                Flashlight.TurnOffAsync();
                blnIsFlashLight = false;
            }
            else
            {
                Flashlight.TurnOnAsync();
                blnIsFlashLight = true;
            }
        }

        private void btnTakePhoto_Clicked(object sender, System.EventArgs e)
        {

        }
    }
}

here is my project Screenshot

Hossein
  • 17
  • 3
  • https://stackoverflow.com/questions/32446520/how-to-take-a-picture-with-ios-camera-and-save-the-image-to-camera-roll-using-xa – Jason Mar 13 '21 at 18:41
  • its for ios,I wanna for android – Hossein Mar 13 '21 at 19:09
  • that's the kind of information that might be useful to include in your post – Jason Mar 13 '21 at 19:21
  • https://learn.microsoft.com/en-us/samples/xamarin/monodroid-samples/android50-camera2basic/ – Jason Mar 13 '21 at 19:21
  • I have no idea what you're talking about or how that code is possibly relevant to the question you asked. – Jason Mar 13 '21 at 19:43
  • There is no way to take photo on my project? – Hossein Mar 14 '21 at 05:14
  • I provided you with the link to samples of using the Camera with Xamarin Android. If you are having problems making that work, you need to provide details about what you're doing and the **specific** problem that you're having. – Jason Mar 14 '21 at 12:40
  • I'm working on it. I am taking inspiration from Xamarin Community Toolkit code (https://github.com/xamarin/XamarinCommunityToolkit/blob/main/src/CommunityToolkit/Xamarin.CommunityToolkit/Views/CameraView) – Andres Talavera Sep 09 '21 at 12:43

0 Answers0