Skip to content

Releases: luberda-molinet/FFImageLoading

FFImageLoading 1.1.7

08 Oct 19:00
Compare
Choose a tag to compare

Samples

If you start the Xamarin Forms demo project you can see a lot of samples for the different features.

Changes

Transformations

We have now cross platform image transformations. These are available on nuget

  • BlurredTransformation
  • CircleTransformation
  • ColorSpaceTransformation
  • GrayscaleTransformation
  • RoundedTransformation
  • SepiaTransformation

Please note that you can still define yours: implement ITransformation and you are ready.

Xamarin Forms

Xamarin Forms nuget package is much more advanced. Daniel Luberda fixed a couple of issues and binded features offered by the lib.

  • Transformations: they are now available on Xamarin Forms too. Just call Transform() method to specify one or more transformations

Fading

Fading is now available and enabled by default on iOS. You can still globally disable fading using:
ImageService.Initialize(fadeAnimationEnabled: false)

HttpClient

ModernHttpClient

The dependency on ModernHttpClient has been removed due to bugs 184 and 185. Instead we now rely on native Mono HttpClientHandler. Therefore if you want to continue using ModernHttpClient it still possible and very easy to do so! When you start the app you should then call:
ImageService.Initialize(httpClient: yourModernHttpClientInstance)

Timeouts

It is now possible to specify two kind of web timeouts:

  • headers timeout: this is the max time to connect to the server and get the headers. The default is 15s.
  • read timeout: this is the max time to get the image (connect to server, get headers, get data). The default is 30s.

FFImageLoading 1.1.6

27 Sep 14:48
Compare
Choose a tag to compare

Changes

  • iOS and Android use the same implementation to cancel tasks scheduled against the same native control d9866fd, 74a336a
  • Always rely on Streams, no more byte arrays (at least on Android) 5c4de0d
  • Downloading and saving/retrieving from disk is now cancellable 5c4de0d
  • Images bundled as AndroidResource can be used now (thanks @petlack !) #38
  • Allow override Configuration even after it has been previously initialized. Note that MaxCacheSize and DiskCache cannot be overridden if it was previously initialized #35
  • Access to cache result: this is useful to know if image was loaded from Internet, Disk, DiskCache, MemoryCache, ... #34
  • Reduced memory usage & OOMs are better handled. #30

Bugs fixed

  • Finish callback was not called when image was loaded from MemoryCache #39
  • Use WebP.Touch 1.0.1 which fixes a rare crash when freeing WebP images

Changes regarding Xamarin.Forms package

Xamarin.Forms package supports now placeholders and can be used in PCL projects.
https://www.nuget.org/packages/Xamarin.FFImageLoading.Forms/

FFImageLoading 1.1.5

31 Aug 20:30
Compare
Choose a tag to compare

Xamarin.Forms

There is now a Xamarin.Form package that wraps the library: https://www.nuget.org/packages/Xamarin.FFImageLoading.Forms/

Issues fixed

  • Handle .NET & Java OOMs and force a garbage collection when it happens: ff619eb
  • Use WeakReferences instead of SoftReferences: they are garbage collected sooner 8fb206b and a couple of Bitmap Dispose calls so .NET world is no longer keeping a reference to the Bitmap. Only Java world is aware of it.
  • No alpha transparency by default. This becomes a parameter: 6cb8430
    It allows saving 50% of memory since 1 pixel is on 2 bytes instead of 4
  • No more registering issue with MvvmCross 7b3cf63

FFImageLoading 1.1.4

18 Aug 10:04
Compare
Choose a tag to compare

Improvements

  • it is now possible to invalidate the memory cache by calling ImageService.InvalidateMemoryCache()

Issues fixed

  • custom configuration passed to ImageService was ignored. Thanks @robbederks b06671c
  • the disk cache was not thread safe, locks have been added where it matters. Issue #26
    (please note that in the future we might rely on Akavache)
  • some changes to the way tasks are disposed/cleaned, to avoid null references exceptions

FFImageLoading 1.1.3

01 Jun 18:56
Compare
Choose a tag to compare

Improvements

Performance improvements: skipping paths when not needed.
Automatically nullify callbacks to avoid memory leaks.

Fading change on Android

Android: Fading is no longer using TransitionDrawable.
TransitionDrawable was not reliable when used in RecyclerViews. Furthermore it was less performant than having a simple alpha transition done in Drawable.Draw.
New implementation uses same logic as PicassoDrawable.

Issues fixed

  • some scheduler issues
  • callbacks invoked too many times and ensure callback are never null
  • no more exceptions in console output when a local image is missing
  • continuations are always scheduled on UI thread now

FFImageLoading 1.1.2

09 May 14:14
Compare
Choose a tag to compare

Not much in this micro release.

Faster image loading

We have now better performances especially when dealing with placeholders. Related commits:
2247205?w=1
a85f090?w=1

Better samples

We now have a RecyclerView sample from @c1rus. You can switch between the 2 samples on Android using standard menu.

FFImageLoading 1.1.1

05 May 09:28
Compare
Choose a tag to compare

RecyclerView

This minor release solves an issue when FFImageLoading is used with RecyclerView. #17
RecyclerView detaches cells and can reuse them without calling OnBindViewHolder() due to that we should not cancel request neither nullify drawable if ImageView is detached.
Related commit is f806962?w=1

Minor improvements

  • Placeholders are retrieved from memory cache when possible
  • Loading an image from a captive network throws now an exception within ModernHttpClient. This is useful otherwise cached data could be wrong

FFImageLoading 1.1

01 May 17:40
Compare
Choose a tag to compare

Transformations

Transformations are now possible on iOS and Android using a similar API as in Picasso. Huge thanks to @c1rus for helping here.

ImageService.LoadUrl(urlToImage)
  .Transform(new CropCircleTransformation())
  .Transform(new GrayscaleTransformation())
  .Into(imgDisplay);

Original image, prior to transformation, is cached to disk. Transformed image is cached in memory. If the same image, with same transformations is requested then it will be loaded from memory.

For more information about transformations open our sample project.

Improvements

There is now a Success overload that gives back width and height of the loaded image. #9

ImageService.LoadUrl(urlToImage)
.Success((width, height) =>
{
  // your code here...
})

Bugs fixed