Разъяснение использования Xamarin FFImageLoading

Я вижу, что мы используем FFImageLoading, как показано ниже.

var cachedImage = new CachedImage() {
    HorizontalOptions = LayoutOptions.Center,
    VerticalOptions = LayoutOptions.Center,
    WidthRequest = 300,
    HeightRequest = 300,
  ...
    Source = <url or asset or resource location>

};

или в XAML:

<ffimageloading:CachedImage 
  HorizontalOptions="Center" VerticalOptions="Center"
    WidthRequest="300" HeightRequest="300"
    DownsampleToViewSize="true"
    Source = "<url or asset or resource location>>
</ffimageloading:CachedImage>

, поэтому я заменил все экземпляры Image в своем проекте UWP и ImageView в своем проекте Android на CachedImage.

Но после прочтения документации FFImageLoading я также вижу много случаев, когда изображения загружаются с использованием ImageService. Например:

ImageService.Instance.LoadUrl(urlToImage).Into(_imageView);
ImageService.Instance.LoadCompiledResource(nameOfResource).Into(_imageView);
...
  • В чем разница между этими двумя способами?

  • Почему я должен использовать один над другим?


person pixel    schedule 25.09.2017    source источник


Ответы (1)


FFImageLoading — это мультиплатформенная библиотека. Методы ImageService.Instance используются для загрузки изображений в собственные представления (например, ImageViewAsync на Android или UIImageView на iOS), а также для некоторых расширенных сценариев. Существуют также элементы управления для конкретных платформ, которые внутренне используют эти методы, например:

  • CachedImage для Xamarin.Forms
  • MvxCachedImageView для нативного Android/iOS/Windows или MVVM Cross

Они позволяют вам использовать такие вещи, как привязки из коробки.

Я советую вам использовать специфичные для платформы элементы управления и использовать вызовы ImageService.Instance для продвинутых вещей. Но это полностью зависит от вас.

person Daniel Luberda    schedule 26.09.2017
comment
Если я правильно понимаю, ImageService.Instance используется только в коде, тогда как CachedImage можно использовать как в коде, так и в XAML? - person pixel; 26.09.2017
comment
ImageService можно вызывать в коде, CachedImage можно использовать только в Xamarin.Forms (и он использует ImageService под капотом) - person Daniel Luberda; 26.09.2017