Импорт нескольких изображений из галереи в приложение xamarin forms и отображение их на странице моего содержимого

#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. Что вы пробовали и с какой именно проблемой столкнулись ?