2017-09-25 2 views
1

ich sehen wir FFImageLoading wie untenXamarin FFImageLoading Nutzungs Klärung

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

verwenden};

oder in XAML:

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

, ersetzt so, ich alle Instanzen Image in meinem UWP Projekt und ImageView in meinem Android-Projekt mit CachedImage.

Aber nach dem Lesen von FFImageLoading Dokumentation, sehe ich auch viele Fälle, in denen Bilder geladen werden mit ImageService. Zum Beispiel:

ImageService.Instance.LoadUrl(urlToImage).Into(_imageView); 
ImageService.Instance.LoadCompiledResource(nameOfResource).Into(_imageView); 
... 
  • Was ist der Unterschied zwischen diesen beiden Möglichkeiten?

  • Warum sollte ich eins über das andere verwenden?

Antwort

2

FFImageLoading ist eine Multi-Plattform-Bibliothek. ImageService.Instance Methoden werden verwendet, um Bilder in native Ansichten zu laden (wie ImageViewAsync auf Android oder UIImageView auf iOS) und auch für einige erweiterte Szenarien. Es gibt auch plattformspezifische Steuerungen, die intern diese Methoden verwenden, wie:

  • CachedImage für Xamarin.Forms
  • MvxCachedImageView für native Android/iOS/Windows-oder MVVM Kreuz

Sie ermöglichen es, für die Verwendung von Dinge wie Bindungen aus der Box.

Ich rate Ihnen plattformspezifische Steuerelemente zu verwenden und ImageService.Instance Aufrufe für erweiterte Dinge zu verwenden. Aber es liegt ganz bei Ihnen.

+0

Wenn ich richtig verstanden habe, wird ImageService.Instance nur im Code verwendet, während CachedImage sowohl in Code als auch in XAML verwendet werden kann. – pixel

+2

'ImageService' kann im Code aufgerufen werden,' CachedImage' kann nur in Xamarin.Forms verwendet werden (und es verwendet 'ImageService' unter der Haube) –

Verwandte Themen