#xamarin #xamarin.forms #media #photo #plugin.media.crossmedia
Вопрос:
В моем случае использования требуется, чтобы пользователь выбрал несколько фотографий из галереи своего устройства и отобразил выбранные изображения в виде сетки в моем приложении xamarin forms. Я уже сделал снимок с помощью камеры устройства и отобразил фотографию, сделанную в приложении, но это всего лишь одна фотография за раз. Код для фотосъемки приведен ниже.
public async void DoTakePhoto()
{
try
{
VisualState = State.Loading;
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
return;
}
MediaFile file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
SaveToAlbum = true,
Directory = "App Photo Folder",
MaxWidthHeight = 2048,
CompressionQuality = 50,
PhotoSize = PhotoSize.MaxWidthHeight,
});
if (file == null amp;amp; ImageSource == null)
{
return;
}
else if (file == null)
{
return;
}
MediaWithFile = new MediumWithFile(m_ExifDataParser) {
Id = new Guid(),
Data = file,
Path = file.Path,
AlbumPath = file.AlbumPath,
Version = 1
};
}
catch (Exception ex)
{
DisplayAlert("B5", ex.ToString(), "B5");
return;
}
finally
{
VisualState = State.None;
}
}
И у меня есть привязываемая переменная ImageSource следующим образом:
public ImageSource ImageSource => MediaWithFile?.Data == null ? null : ImageSource.FromFile(MediaWithFile.Data.Path);
Я отображаю щелкнутую фотографию в своем пользовательском интерфейсе, используя следующий код:
<Frame Grid.Row="0"
Grid.ColumnSpan="2"
Padding="0"
CornerRadius="8">
<Image Aspect="AspectFill"
BackgroundColor="Transparent"
Source="{Binding ImageSource}" />
</Frame>
Есть ли способ загрузить несколько изображений из галереи и отобразить их с помощью одного и того же плагина Crossmedia. Любая идея по этому поводу приветствуется.
Комментарии:
1. существует множество существующих вопросов на эту тему — google.com/…
2. Что вы пробовали и с какой именно проблемой столкнулись ?