2017-09-25 96 views
1

我看到我们使用FFImageLoading像下面Xamarin 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> 

,所以,我取代了我的UWP项目ImageImageView所有实例我与CachedImage Android项目。

但是在阅读FFImageLoading文档后,我还看到很多 使用ImageService加载图像的情况。例如:

ImageService.Instance.LoadUrl(urlToImage).Into(_imageView); 
ImageService.Instance.LoadCompiledResource(nameOfResource).Into(_imageView); 
... 
  • 的是这两种方法之间的区别?

  • 为什么我会用另一个呢?

回答

2

FFImageLoading是一个多平台库。 ImageService.Instance方法用于将图像加载到本机视图中(如Android上的ImageViewAsync或iOS上的UIImageView)以及一些高级方案。还有一些在内部使用这些方法,比如平台相关的控制:

  • CachedImage为Xamarin.Forms
  • MvxCachedImageView为原生Android/iOS版/ Windows或MVVM跨

它们允许您使用诸如绑定框之类的东西。

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

+0

如果我理解正确,ImageService.Instance仅用于代码,而CachedImage可用于代码和XAML? – pixel

+2

'ImageService'可以在代码中调用,'CachedImage'只能用于Xamarin.Forms(并且它使用'ImageService') –