#xamarin.forms
#xamarin.forms
Вопрос:
Я использую ImageCropper.Формы для обрезки изображения, выбранного с камеры и галереи. У меня есть 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
and в виде всплывающего окна. Мне не нужно это всплывающее окно, есть ли какой-нибудь способ удалить второе всплывающее окно, запрошенное 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);
}
}
Скриншот: https://i.stack.imgur.com/qYBuu.jpg
Ответ №1:
Предупреждение по умолчанию определено в пакете . Поэтому я не думаю, что мы можем заблокировать его напрямую. Если вы хотите задать его текст, вам просто нужно установить
SelectSourceTitle = " ",
TakePhotoTitle = "Take Photo",
PhotoLibraryTitle = "Upload from Gallery"
Комментарии:
1. У меня есть еще одна проблема, связанная с этим пакетом, пожалуйста, дайте ответ на это.
2. В чем ваша проблема?
3. Мне нужно сохранить окончательное изображение на сервер, для этого мне нужно значение потока и пути конечного изображения, не могли бы вы, пожалуйста, проверить вопрос еще раз? (после скриншота)