我有Xamarin Forms应用程序,该应用程序使用自定义渲染器来实现相机API 2,并且在Android版本的应用程序上,如果有任何见解可以避免此类操作,他将冻结并无法工作,直到重新启动该应用程序为止
[如果要在Xamarin.Forms中实现照相并从相册中拾取图像,请执行以下操作:您可以使用nuget中的插件Xam.Plugin.Media。而且您不需要使用Custom Renderer并在特定平台上实现它。
形式
takePhotoButton.Clicked += async (sender, args) =>
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
DisplayAlert("No Camera", ":( No camera available.", "OK");
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
if (file == null)
return;
await DisplayAlert("File Location", file.Path, "OK");
image.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
return stream;
});
};
有关可检查Docs的插件的详细信息和功能的表格,