我使用ImageCropper.Forms裁剪从相机和画廊中选择的图像。我有3个选项,以改变个人资料图片;采取照片,上传从画廊和选择阿凡达。因此,为了显示媒体选项,我使用了如下所示的DisplayActionSheet
:
var actionSheet = await DisplayActionSheet(null,"Cancel", null, "Take Photo", "Upload from Gallery", "Select Avatar");
if (actionSheet == "Take Photo")
{
OpenCamera();
}
else if(actionSheet == "Upload from Gallery")
{
Opengallery();
}
else if(actionSheet == "Select Avatar")
{
OpenAvatar();
}
下面添加了OpenCamera()和Opengallery()。该代码还以弹出窗口形式再次询问Take Photo
和Photo Library
选项。我不需要弹出,有没有办法删除ImageCropper.Forms
要求的第二个弹出窗口,直接加载相机或画廊?
我的代码:
async void OpenCamera()
{
try
{
await CrossMedia.Current.Initialize();
//I need to open camera only here, no need of a pop up again.
new ImageCropper()
{
PageTitle = "Test Title",
AspectRatioX = 1,
AspectRatioY = 1,
CropShape = ImageCropper.CropShapeType.Rectangle,
SelectSourceTitle = "Select source",
TakePhotoTitle = "Take Photo",
PhotoLibraryTitle = "Photo Library",
Success = (imageFile) =>
{
Device.BeginInvokeOnMainThread(() =>
{
profilephoto.Source = ImageSource.FromFile(imageFile);
});
}
}.Show(this);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("CameraException:>" + ex);
}
}
async void Opengallery()
{
try
{
await CrossMedia.Current.Initialize();
//I need to open gallery only here, no need of a pop up again.
new ImageCropper()
{
PageTitle = "Test Title",
AspectRatioX = 1,
AspectRatioY = 1,
CropShape = ImageCropper.CropShapeType.Rectangle,
SelectSourceTitle = "Select source",
TakePhotoTitle = "Take Photo",
PhotoLibraryTitle = "Photo Library",
Success = (imageFile) =>
{
Device.BeginInvokeOnMainThread(() =>
{
profilephoto.Source = ImageSource.FromFile(imageFile);
//var stream = ImageSource.FromFile(imageFile);
//imagefile = imageFile;
});
}
}.Show(this);
}
}
发布于 2021-01-21 03:23:48
默认警报是在包中定义的。所以我觉得我们不能直接阻止它。如果您想设置它的文本,只需设置
SelectSourceTitle = " ",
TakePhotoTitle = "Take Photo",
PhotoLibraryTitle = "Upload from Gallery"
https://stackoverflow.com/questions/65825324
复制