1

我看到我们使用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 项目和ImageViewAndroid 项目中的所有实例替换为CachedImage.

但是在阅读了 FFImageLoading 文档后,我也看到了很多使用ImageService. 例如:

ImageService.Instance.LoadUrl(urlToImage).Into(_imageView);
ImageService.Instance.LoadCompiledResource(nameOfResource).Into(_imageView);
...
  • 这两种方式有什么区别?

  • 为什么我要使用其中一个?

4

1 回答 1

2

FFImageLoading 是一个多平台库。ImageService.Instance方法用于将图像加载到本机视图(如ImageViewAsync在 Android 或UIImageViewiOS 上)以及一些高级场景。还有一些特定于平台的控件在内部使用这些方法,例如:

  • CachedImage对于 Xamarin.Forms
  • MvxCachedImageView适用于原生 Android/iOS/Windows 或 MVVM Cross

它们允许您使用开箱即用的绑定之类的东西。

我建议您使用平台特定的控件并使用ImageService.Instance高级功能的调用。但这完全取决于你。

于 2017-09-26T13:14:39.787 回答