2017-09-25 149 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') –